Предыдущий день файла в .bat - PullRequest
0 голосов
/ 26 января 2019

У меня есть требование скопировать файлы предыдущей даты из одной папки в другую.
Я использовал команду ниже, чтобы скопировать файл за предыдущий день, который не работал.
Любая помощь по этому вопросу приветствуется

@echo off
For /F "delims=" %%G In ('PowerShell -Command "&{((Get-Date).AddDays(-1)).ToString('MMddyyyy')}"') Do Set "yesterday=%%G"
echo D | xcopy "D:\*.png" "D:\DNU" /D:yesterday /Y

1 Ответ

0 голосов
/ 26 января 2019

С xcopy /?:

/D:m-d-y     Copies files changed on or after the specified date.
               If no date is given, copies only those files whose
               source time is newer than the destination time.

Так что ему нужно m-d-y, но вы кормите его MMddyyyy.
Также вам нужно поместить % вокруг yesterday, чтобы использовать значение этой переменной, поэтому попробуйте это:

@echo off
For /F "delims=" %%G In ('PowerShell -Command "&{((Get-Date).AddDays(-1)).ToString('MM-dd-yyyy')}"') Do Set "yesterday=%%G"
echo D | xcopy "D:\*.png" "D:\DNU" /D:%yesterday% /Y
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...