我需要遍历文件夹中的特定文件并将它们合并到一个文件中,并希望它使用批处理文件来实现。我的文件如下所示。
ILCY_NEW_20110908123008
ILCY_NEW_20110908123009
ILCY_NEW_20110908123010
意思是,ILCY_NEW_timestamp
。该文件夹也有其他文件,但我只需要今天的时间戳。所以我编写了以下代码来遍历所有文件并将名称组合成变量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
中而忽略所有以前的文件,即使它们在名称中有今天的时间戳。有人可以帮我吗?
答案 0 :(得分:1)
我无法让你的日期逻辑在我的机器上运行,但假设你的for循环正确获取正确的文件名,你可以这样做:
set tt=%yyyy%%mm%%dd%
for %%f in (ILCY_NEW_%tt%*.*) do type "%%f" >> ILCY_NEW_CQ.csv
'>>'将附加到文件(而不是'>',这将覆盖它)。请参阅this page以供参考。
答案 1 :(得分:1)
复制命令可以自行处理通配符:
set tt=%yyyy%%mm%%dd%
copy ILCY_NEW_%tt%*.* ILCY_NEW_CQ.csv
答案 2 :(得分:0)
如果您需要今天的时间戳,请使用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"
)