Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помощь в поиске ошибки bat файла для удаления backup по маске.

Ответить
Настройки темы
CMD/BAT - [решено] Помощь в поиске ошибки bat файла для удаления backup по маске.

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Добрый день, подскажите где ошибка в bat файле. Имеется батник который по запуску удаляет backup с маской *%y%_%m%_%d%*.bak , при наличии бэкапа за сегодняшний день. Работает почему-то с датами с 10 числа месяца, если запустить до 9 числа, то выдает
Ошибку

================================
08.03.2016
================================
Неправильное число. Числовые константы должны быть десятичными (17)
шестнадцатеричными (0x11),или восьмеричными (021).
2016_3_
Непредвиденное появление: 10.


Сам код bat файла
::=====================================================
::=====================================================
@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

Отправлено: 17:09, 12-03-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


PunksNotDead_x@twitter, там же ясно указано — командный процессор воспринимает числа, начинающиеся с нуля, как восьмеричные, а восьмеричных чисел «08» и «09» быть не может.

Самый простой вариант — перейти на WSH или PoSH. Сразу отпадут проблемы с вычислением разницы дат.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:43, 12-03-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помощь в поиске ошибки bat файла для удаления backup по маске.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - скрипт по копирвоанию и последующего удаления файлов по маске названия файла santey007 Скриптовые языки администрирования Windows 19 22-12-2015 10:43
CMD/BAT - Копирование файлов в папки по маске файла и маске папки (BAT) skyskiff Скриптовые языки администрирования Windows 7 20-09-2015 22:41
CMD/BAT - *bat исключение на копирование файла по маске morcano Скриптовые языки администрирования Windows 1 07-07-2015 11:19
CMD/BAT - создание bat файла для удаления старых папок GODolubOFF Скриптовые языки администрирования Windows 5 13-04-2015 23:03
CMD/BAT - [решено] Нужен bat-ник для поиска и удаления файлов и папок по маске Nun-Nun Скриптовые языки администрирования Windows 14 08-11-2014 09:53




 
Переход