循环访问一个文件夹中的一组文件

发布于 2024-12-03 12:13:03 字数 530 浏览 3 评论 0原文

我需要循环遍历文件夹中的特定文件并将它们合并到一个文件中,并希望使用批处理文件来实现。我的文件如下所示。

ILCY_NEW_20110908123008
ILCY_NEW_20110908123009
ILCY_NEW_20110908123010

意思是,ILCY_NEW_时间戳。该文件夹还将包含其他文件,但我只需要带有今天时间戳的文件。因此,我编写了以下代码来循环所有文件并将名称组合到变量 CL 中。

set tt=%yyyy%%mm%%dd%
for %%f in (ILCY_NEW_%tt%* . *) do set cl=%cl%+%%f 
set cl=%cl:~1%
echo %cl%
copy %cl% ILCY_NEW_CQ.csv

但是,只有最后一个文件会被选中,并且只会被复制到 ILCY_NEW_CQ.csv 中,而忽略所有以前的文件,即使它们的名称中包含今天的时间戳。有人可以帮我吗?

I have a requirement to loop through the particular files in a folder and merge those into one file and want it to achieve using a Batch file. My files look like below.

ILCY_NEW_20110908123008
ILCY_NEW_20110908123009
ILCY_NEW_20110908123010

meanining, ILCY_NEW_timestamp. The folder will have other files as well but I only need ones with today's timestamp. So I have written the following code to loop through all the files and combining the names into variable CL.

set tt=%yyyy%%mm%%dd%
for %%f in (ILCY_NEW_%tt%* . *) do set cl=%cl%+%%f 
set cl=%cl:~1%
echo %cl%
copy %cl% ILCY_NEW_CQ.csv

But, only the last file gets selected with this and it only gets copied into ILCY_NEW_CQ.csv ignoring all previous files, even though they have today's timestamp in the name. Can anyone help me here please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

乄_柒ぐ汐 2024-12-10 12:13:03

我无法让你的日期逻辑在我的机器上工作,但假设你的 for 循环正确地获取了正确的文件名,你可以这样做:

set tt=%yyyy%%mm%%dd%
for %%f in (ILCY_NEW_%tt%*.*) do type "%%f" >> ILCY_NEW_CQ.csv

'>>'将附加到文件(与“>”相反,“>”会覆盖它)。请参阅此页面以供参考。

I can't get your date logic to work on my machine, but assuming that your for loop is correctly getting the right filenames, you can do something like this:

set tt=%yyyy%%mm%%dd%
for %%f in (ILCY_NEW_%tt%*.*) do type "%%f" >> ILCY_NEW_CQ.csv

The '>>' will append to the file (as opposed to '>', which would overwrite it). See this page for reference.

梨涡少年 2024-12-10 12:13:03

Copy 命令可以自行处理通配符:

set tt=%yyyy%%mm%%dd%    
copy ILCY_NEW_%tt%*.* ILCY_NEW_CQ.csv

Copy command can handle wildcards by itself:

set tt=%yyyy%%mm%%dd%    
copy ILCY_NEW_%tt%*.* ILCY_NEW_CQ.csv
十年不长 2024-12-10 12:13:03

如果您需要自动获取今天的时间戳,请使用这个小 for 循环与 serg 的复制命令:

FOR /F "USEBACKQ tokens=2-4 delims=/ " %%A IN (`date /t`) DO (
 SET tt=%%C%%A%%B & copy /y "ILCY_NEW_%tt%*.*" "ILCY_NEW_CQ.csv"
)

If you need the time stamp for today automatically, use this little for loop with serg's copy command:

FOR /F "USEBACKQ tokens=2-4 delims=/ " %%A IN (`date /t`) DO (
 SET tt=%%C%%A%%B & copy /y "ILCY_NEW_%tt%*.*" "ILCY_NEW_CQ.csv"
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文