Я решил написать небольшой пакетный файл, чтобы делать ежедневные копии папки и ее содержимого. Я использовал WMIC для правильного форматирования даты, чтобы автоматически называть папки. Хотя он отлично работает в командной строке, похоже, ему не нравится, когда он выполняется TaskScheduler - он делает копию папки, но не получает никакой даты и сохраняет файлы в папку с именем -~-2-~-2
. Кажется, что в целом пропускается первая часть кода и происходит переход непосредственно к части Pad digits
, откуда она получает бит ~-2
. Любые предложения будут приветствоваться!
Вот мой пакетный файл:
@Echo off
:: Check WMIC is available
WMIC.EXE Alias /? >NUL 2>&1 || GOTO s_error
:: Use WMIC to retrieve date and time
FOR /F "skip=1 tokens=1-6" %%G IN ('WMIC Path Win32_LocalTime Get Day^,Month^,Year /Format:table') DO (
IF "%%~L"=="" goto s_done
Set _yyyy=%%L
Set _mm=00%%J
Set _dd=00%%G
)
:s_done
:: Pad digits with leading zeros
Set _mm=%_mm:~-2%
Set _dd=%_dd:~-2%
:: Display the date/time in ISO 8601 format:
Set _date=%_yyyy%-%_mm%-%_dd%
Echo %_date%
:: Xcopy the files!
xcopy /s /i "C:\Users\Alcides\Documents\CQC_APS_TESE_DOUTORAMENTO_LaTeX" "I:\Tese-Backup\"%_date%\
GOTO:EOF
:s_error
Echo GetDate.cmd
Echo Displays date and time independent of OS Locale, Language or date format.
Echo:
Echo Returns 6 environment variables containing isodate,Year,Month,Day,hour and minute.