将具有相同字符的多个文件复制到单个文件

时间:2013-05-14 20:07:45

标签: batch-processing dos

我有很多需要加入的文件。现有文件命名结构为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的脚本,其中CITY名称是变量。

1 个答案:

答案 0 :(得分: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