PunksNotDead_x@twitter
12-03-2016, 17:09
Добрый день, подскажите где ошибка в bat файле. Имеется батник который по запуску удаляет backup с маской *%y%_%m%_%d%*.bak , при наличии бэкапа за сегодняшний день. Работает почему-то с датами с 10 числа месяца, если запустить до 9 числа, то выдает
================================
08.03.2016
================================
Неправильное число. Числовые константы должны быть десятичными (17)
шестнадцатеричными (0x11),или восьмеричными (021).
2016_3_
Непредвиденное появление: 10.
::=====================================================
::=====================================================
@echo off
set dd2 = %date%
echo ================================
echo %date:~0,10%
echo ================================
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
echo %y%_%m%_%d%
if %m% lss 10 (
set m=0%m%
)
if %d% lss 10 (
set d=0%d%
)
REM set /a d=1
echo %y%_%m%_%d%
if not exist *%y%_%m%_%d%*.bak (
echo CURRENT FILE NOT EXISTS
exit
)
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
:loop
set /a d-=1
if %d% lss 1 (
set d=31
set /a m-=1
if %m% lss 1 (
set m=12
set /a y-=1
)
)
if %m% lss 10 (
set m=0%m%
)
if %d% lss 10 (
set d=0%d%
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.trn -Y
del *%y%_%m%_%d%*.bak -Y
echo ================================
if %d% equ 31 (
set d=30
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.trn -Y
del *%y%_%m%_%d%*.bak -Y
echo ================================
if %d% equ 30 (
set d=29
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.trn -Y
del *%y%_%m%_%d%*.bak -Y
echo ================================
if %d% equ 29 (
set d=28
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.bak -Y
del *%y%_%m%_%d%*.trn -Y
pause
================================
08.03.2016
================================
Неправильное число. Числовые константы должны быть десятичными (17)
шестнадцатеричными (0x11),или восьмеричными (021).
2016_3_
Непредвиденное появление: 10.
::=====================================================
::=====================================================
@echo off
set dd2 = %date%
echo ================================
echo %date:~0,10%
echo ================================
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
echo %y%_%m%_%d%
if %m% lss 10 (
set m=0%m%
)
if %d% lss 10 (
set d=0%d%
)
REM set /a d=1
echo %y%_%m%_%d%
if not exist *%y%_%m%_%d%*.bak (
echo CURRENT FILE NOT EXISTS
exit
)
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
:loop
set /a d-=1
if %d% lss 1 (
set d=31
set /a m-=1
if %m% lss 1 (
set m=12
set /a y-=1
)
)
if %m% lss 10 (
set m=0%m%
)
if %d% lss 10 (
set d=0%d%
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.trn -Y
del *%y%_%m%_%d%*.bak -Y
echo ================================
if %d% equ 31 (
set d=30
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.trn -Y
del *%y%_%m%_%d%*.bak -Y
echo ================================
if %d% equ 30 (
set d=29
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.trn -Y
del *%y%_%m%_%d%*.bak -Y
echo ================================
if %d% equ 29 (
set d=28
)
echo %y%_%m%_%d%
del *%y%_%m%_%d%*.bak -Y
del *%y%_%m%_%d%*.trn -Y
pause