В настоящее время я использую пакетный скрипт robocopy для создания резервных копий каталогов, приведенный ниже пакетный скрипт создает папку в формате ГГГГММДД текущей даты запуска скрипта.
Скрипт ниже:
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%"
robocopy "\\fsfiles\d$" "D:\Backups\Inc\%datestamp%" /S /W:0 /R:1 /MAXAGE:1 /A-:SH
Затем я использую другой пакетный скрипт для удаления резервных копий через 31 день.
Скрипт ниже:
@echo off
:: set folder path
set dump_path=D:\Backups\Inc
:: set min age of files and folders to delete
set max_days=31
:: remove files from %dump_path%
forfiles -p %dump_path% -m *.* -d -%max_days% -c "cmd /c del /q @path"
:: remove sub directories from %dump_path%
forfiles -p %dump_path% -d -%max_days% -c "cmd /c IF @isdir == TRUE rd /S /Q @path
Хотя сценарий для удаления папки и всего ее содержимого на основе даты создания папки работает, я хотел бы изменить его, чтобы удалить папку и все ее содержимое на основе имени папки в формате даты ГГГГММДД, если он старше 31 день.
Как я могу этого добиться?