Скопируйте файлы для резервного копирования и добавления даты - PullRequest
0 голосов
/ 20 марта 2019

Я использую приведенный ниже скрипт для добавления текущей даты в файл при копировании и создании резервной копии.Тем не менее, у меня есть несколько файлов Excel в каталоге C: \ Test.Я хотел бы передать каждое имя файла как переменную и добавить дату при копировании в каталог C: \ Test \ Archive \ Processed.

@echo off

for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set DateTime=%%a

set Yr=%DateTime:~0,4%
set Mon=%DateTime:~4,2%
set Day=%DateTime:~6,2%

set BackupName=File Name__%Yr%-%Mon%-%Day%

copy "C:\Test\*" "C:\Test\Archive\Processed\%BackupName%.xlsx"

Требуемый вывод:

FilenameA__2019-03-20.xlsx
FilenameB__2019-03-20.xlsx
FilenameC__2019-03-20.xlsx
...

Заранее большое спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 20 марта 2019

Вы должны использовать for цикл вместе с модификаторами ~ мета-переменной цикла:

for %%I in ("C:\Test\*.xlsx") do (
    copy "%%~I" "C:\Test\Archive\Processed\%%~nI__%Yr%-%Mon%-%Day%%%~xI"
)
0 голосов
/ 20 марта 2019

Вместо вашего copy выражения поместите что-то вроде этого (не проверено):

FORFILES /M *.xlsx /C "cmd /c copy @file C:\Test\Archive\Processed\@fname_%BackupName%.xlsx"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...