循环遍历一个文件夹中的一组文件
问题描述:
我有一个循环遍历文件夹中的特定文件并将它们合并到一个文件并希望使用批处理文件实现的需求。我的文件如下所示。循环遍历一个文件夹中的一组文件
ILCY_NEW_20110908123008
ILCY_NEW_20110908123009
ILCY_NEW_20110908123010
meanining,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
忽略所有以前的文件,即使他们有今天的名字时间戳。有谁能帮我在这里吗?
答
我不能让你的约会逻辑来我的机器上工作,但假设你的for循环正确地得到正确的文件名,你可以做这样的事情:
set tt=%yyyy%%mm%%dd%
for %%f in (ILCY_NEW_%tt%*.*) do type "%%f" >> ILCY_NEW_CQ.csv
的“>>”将追加到文件(而不是'>',它会覆盖它)。请参阅this page以供参考。
答
复制命令可以自行处理通配符:
set tt=%yyyy%%mm%%dd%
copy ILCY_NEW_%tt%*.* ILCY_NEW_CQ.csv
答
如果你需要自动为今天的时间戳,使用这个小的循环与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"
)