|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помощь в поиске ошибки bat файла для удаления backup по маске. |
|
CMD/BAT - [решено] Помощь в поиске ошибки bat файла для удаления backup по маске.
|
Новый участник Сообщения: 1 |
Профиль | Сайт | Отправить 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
|
Профиль | Отправить PM | Цитировать PunksNotDead_x@twitter, там же ясно указано — командный процессор воспринимает числа, начинающиеся с нуля, как восьмеричные, а восьмеричных чисел «08» и «09» быть не может.
Самый простой вариант — перейти на WSH или PoSH. Сразу отпадут проблемы с вычислением разницы дат. |
Отправлено: 17:43, 12-03-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - скрипт по копирвоанию и последующего удаления файлов по маске названия файла | 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 |
|