2013-05-14 67 views
2

我有很多需要連接的文件。現有的文件命名結構是20130514ABCD.txt,其中文件命名約定是年,月,日,城。我想將具有相同最後四個字符(即同一城市)的文件合併爲一個。將具有相同字符的多個文件複製到單個文件

我只能將城市移動到爲每個城市創建的文件夾。這不是我想要的..

@echo off 

pushd pathname 
for /f %%F in ('dir/b/a-d *.txt') do call :sub1 %%F 
goto :eof 

:sub1 
set name=%1 
md %name:~9,12% 
move %* %name:~9,12% 

我需要的是等效的腳本C:\>copy *CITY.TXT to CITY.txt,其中,城市名稱是一個變量。

+0

兩個問題:所有的城市都在同一個文件夾?每個城市都有一個共同的日期 - 所以我可以要求29130514 * .txt併爲每個城市獲取一個文件。 ?? – foxidrive

回答

0

編輯:這適用於你所說的文件。

@echo off 
pushd "pathname" 
for /f "delims=" %%F in ('dir /b /a-d *.txt') do call :sub1 "%%F" 
popd 
pause 
goto :eof 

:sub1 
set "name=%~1" 
set "cityname=%name:~8,-4%" 
if exist "%cityname%\" goto :EOF 
echo processing "%cityname%" 
md "%cityname%" 2>nul 
copy /b "????????%cityname%.txt" "%cityname%\%cityname%.txt" >nul 
+0

所有城市(不同日期)都在同一個文件夾中。日期也是一個變量,這意味着文件名可能是20100111CITA.txt,20110214CTTB.txt等 –

+0

請嘗試上面的代碼。城市文件夾將被創建,並且不應該預先存在,否則它將跳過文件。 – foxidrive

+0

它會提示「系統找不到指定的路徑,按任意鍵繼續......」,不知道出了什麼問題。 –

相關問題