ApxapoBeu
18-09-2012, 19:27
Здравствуйте. Прошу знающих людей проверить мой скрипт. Он работает и выполняет то, что от него требуется, но перед тем, как отправить его в планировщик, хотелось бы убедиться, что он безопасен.
Скрипт должен удалять из заданной папки .7z архивы, которые старше %delta% месяцев (принимать значение больше 12 дельта точно не будет), и доложить об удалении в лог.
@Echo off
SetLocal EnableDelayedExpansion
SET PATH_LOG=C:\Archive\LOG\
SET LOG_FILE=Event.log
Set del7z=c:\archive\*.7z
set delta=2
set yyyy=%date:~6,4%
Set /A MM=1%Date:~3,2%-%Delta%-100
if %mm% lss 1 (
set /a mm=12+%mm%
set /a yyyy=%yyyy%-1
)
set dd=%date:~0,2%
if %dd% gtr 29 set dd=29
if %mm% lss 10 (
set yyyymmdd=%yyyy%0%mm%%dd%
) else (
set yyyymmdd=%yyyy%%mm%%dd%
)
echo %yyyymmdd%
for %%i in (%del7z%) do (
set $t=%%~ti& set $d=!$t:~6,4!!$t:~3,2!!$t:~,2!
if !$d! LSS %yyyymmdd% (
DEL /F "%%i"
echo %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% - %TIME:~0,-3% - %%~ni.7z - Удален - OK >>"%PATH_LOG%%LOG_FILE%"
)
)
Скрипт должен удалять из заданной папки .7z архивы, которые старше %delta% месяцев (принимать значение больше 12 дельта точно не будет), и доложить об удалении в лог.
@Echo off
SetLocal EnableDelayedExpansion
SET PATH_LOG=C:\Archive\LOG\
SET LOG_FILE=Event.log
Set del7z=c:\archive\*.7z
set delta=2
set yyyy=%date:~6,4%
Set /A MM=1%Date:~3,2%-%Delta%-100
if %mm% lss 1 (
set /a mm=12+%mm%
set /a yyyy=%yyyy%-1
)
set dd=%date:~0,2%
if %dd% gtr 29 set dd=29
if %mm% lss 10 (
set yyyymmdd=%yyyy%0%mm%%dd%
) else (
set yyyymmdd=%yyyy%%mm%%dd%
)
echo %yyyymmdd%
for %%i in (%del7z%) do (
set $t=%%~ti& set $d=!$t:~6,4!!$t:~3,2!!$t:~,2!
if !$d! LSS %yyyymmdd% (
DEL /F "%%i"
echo %DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% - %TIME:~0,-3% - %%~ni.7z - Удален - OK >>"%PATH_LOG%%LOG_FILE%"
)
)