С 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