2016-01-21 6 views
0

Итак, мы пытаемся скопировать три файла с различным количеством итераций в другую папку с датой, добавленной после имени файла. Вот наш код:Пакетный файл, который копирует динамическое имя файла в другой каталог с датой

@ECHO off 
XCOPY /y /c z:\accounting\daily\test\fdxe*.csv 

rem get date, make it file name friendly 
FOR /F "tokens=1-4 delims=/ " %%i in ('date/t') do set d=%%j%%k%%l 

set csv=fdxe*%d%.csv 
ren fdxe*.csv %csv% 
move fdxe*.csv \\newserver\Export\Fedex\test\ 
@ECHO on 

Теперь копирует файлы в нужную папку, и это добавление даты, но он продолжает добавлять дату после расширения .csv. Итак, мы закончили с: fdxe1.csv01212016.

Что мы делаем неправильно?

+0

Почему бы не использовать команду FOR для итерации всех файлов и использования модификаторов команд, чтобы разбить имя базового файла на расширение. – Squashman

+0

Как бы я это сделал? Пакетный файл - это то, с чем у меня было очень мало опыта. –

ответ

0

Мы решили проблему, перемещая файлы и переименовывая их. Я также изменил раздел переименования, используя ? вместо * для символов, которые я хотел сохранить в исходном имени файла. Код теперь выглядит следующим образом:

@ECHO off 
XCOPY /y /c z:\accounting\daily\test\fdxe*.csv 

move fdxe*.csv \\devserver\Elliott_Export\Fedex\test\ 

rem get date, make it file name friendly 
FOR /F "tokens=1-4 delims=/ " %%i in ('date/t') do set d=%%j%%k%%l 

rename \\newserver\Export\Fedex\test\?.??? ?????_%d%.??? 
@Echo on 

 Смежные вопросы

  • Нет связанных вопросов^_^