2011-09-08 143 views
3

我有一個循環遍歷文件夾中的特定文件並將它們合併到一個文件並希望使用批處理文件實現的需求。我的文件如下所示。循環遍歷一個文件夾中的一組文件

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忽略所有以前的文件,即使他們有今天的名字時間戳。有誰能幫我在這裏嗎?

回答

1

我不能讓你的約會邏輯來我的機器上工作,但假設你的for循環正確地得到正確的文件名,你可以做這樣的事情:

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

的「>>」將追加到文件(而不是'>',它會覆蓋它)。請參閱this page以供參考。

1

複製命令可以自行處理通配符:

set tt=%yyyy%%mm%%dd%  
copy ILCY_NEW_%tt%*.* ILCY_NEW_CQ.csv 
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" 
) 
相關問題