2015-04-08 3 views
0

Мне нужно написать пакетный файл, чтобы он мог выбирать файлы из разных папок в соответствии с датой, переданной и копировать эти файлы в пункт назначения и переименовывать файл (т. если имя файла похоже на abcd_yyyymmdd, то оно будет переименовываться как abcd), чтобы переименовать многократный файл в нескольких папках, используя партию

Ниже приведен мой пакетный файл, он копирует все соответствующие файлы из источника в пункт назначения в соответствии с указанной датой, но переименование не выполняется.

@ECHO OFF 

SET date="20150211" 

SET AAH_PATH=D:\ABC\Data\IN\ABCD 
COPY D:\ABC\Data\IN\ABCD\*_%date%.txt D:\ABC\Data\File\*.txt 
SET FOLDER_PATH=D:\ABC\Data\File 
pushd %FOLDER_PATH% 
for /F "tokens=1* delims=_" %%a in ('dir /B *.txt') do ren "%%a_%%b" "%%a.txt" 
popd 

SET SIE_PATH=D:\ABC\Data\IN\SIE 
COPY D:\ABC\Data\IN\SIE\*_%date%.txt D:\ABC\Data\NEWFILE\*.txt 
SET SIE_DEST=D:\ABC\Data\NEWFILE 
pushd %SIE_DEST% 
for /F "tokens=1* delims=_" %%a in ('dir /B *.txt') do ren "%%a_%%b" "%%a.txt" 
popd 

SET UB_ABF=D:\ABC\Data\IN\UB\ABF 
COPY D:\ABC\Data\IN\UB\ABF\*_%date%.txt D:\ABC\Data\UB\*.txt 


SET UB_BCL=D:\RBC\Data\IN\UB\BCL 
COPY D:\RBC\Data\IN\UB\BCL\*_%date%.txt D:\ABC\Data\UB\*.txt 

SET UB_DEST=D:\ABC\Data\UB 
pushd %UB_DEST% 
for /F "tokens=1* delims=_" %%a in ('dir /B *.txt') do ren "%%a_%%b" "%%a.txt" 
popd 

Может кто-то помочь мне решить эту проблему

+0

место эхо-команды до строки с помощью for-statement. Таким образом, вы можете контролировать, если линии будут расширены, как вы ожидаете –

ответ

0

Попробуйте добавить расширение файла на пути источника в каждой для/ф петли жэнь ...

for /F "tokens=1* delims=_" %%a in ('dir /B *.txt') do ren "%%a_%%b.txt" "%%a.txt" 
Смежные вопросы