|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Не работает команда set /a |
|
CMD/BAT - [решено] Не работает команда set /a
|
Старожил Сообщения: 178 |
Профиль | Отправить PM | Цитировать здравствуйте, прошу Вас помочь в решении одной задачи.
в определенном каталоге находятся архивы, которые именуются по дате их создания, пример названия таких файлов: 2011.06.05-12.00.00.7z 2011.06.06-12.00.00.7z 2011.06.07-12.00.00.7z 2011.06.08-12.00.00.7z требуется хранить в каталоге ТОЛЬКО три последних (по дате их создания) архива - а остальные удалить (т.е. удалим файл - 2011.06.05-12.00.00.7z - т.к. он самый поздний ) мое решение - скрипт следующего содержания: =================================== set S=3 for /F "Delims=" %%i in ('dir /B /O:N *.7z') do ( set /a S-=1 if /I S LEQ 0 DEL %%i ) =================================== скрипт отрабатывается, ошибок не выдает, но команда set /a S-=1 не выполняется - не выполнение заключается в том что значение S не уменьшается на 1 если написать в скрипте =================================== set S=3 set /a S-=1 echo %S% =================================== то функция работает. Получается что функция set с параметром /a не работает в составе цикла for если нет решения этой задачи, то как ее решить??? |
|
Отправлено: 23:07, 27-06-2011 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 02:54, 28-06-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата mark23:
|
|
Отправлено: 03:29, 28-06-2011 | #3 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать остаются только 2 файла
|
Последний раз редактировалось ferget, 28-06-2011 в 05:43. Отправлено: 03:58, 28-06-2011 | #4 |
Старожил Сообщения: 178
|
Профиль | Отправить PM | Цитировать ferget
изменил команду на: for /f "skip=3 delims=" %%a in ('dir /b /o:n *.7z') do del "%%a" результат: удалил оставил только три последних файла и удалил остальные amel27 вы все правильно написали, надо только изменить оператор сравнения в команде IF на LSS если нет возражений то отмечу - решение данной темы найдено. |
|
Отправлено: 07:01, 28-06-2011 | #5 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Здравствуйте. Возникла такая же проблема, как и у автора темы. Есть скрипт для экспорта веток реестра из списка:
Так вот, в цикле переменная num остается без изменений, однако вне цикла она принимает итоговое значение, которое и должно быть (если в списке например 65 строк, то результатом будет 166) |
Отправлено: 12:26, 04-04-2013 | #6 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата dimon91:
|
|
Отправлено: 16:09, 04-04-2013 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:16, 04-04-2013 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Криво работает сочетание for и set | Boa Soft | Скриптовые языки администрирования Windows | 4 | 16-06-2011 16:37 | |
Ошибка - [решено] Не работает команда mstscoo | Tangor | Microsoft Windows 2000/XP | 4 | 18-10-2010 14:26 | |
Прочие - Web-камера не работает. Ошибка 80004005 cannot set frame rate for preview | Raspytnik | Microsoft Windows 7 | 3 | 17-03-2010 22:41 | |
Не работает команда Run | archiver | AutoIt | 6 | 30-12-2009 22:01 | |
Не работает команда ping | dascon | Сетевые технологии | 5 | 11-12-2006 16:12 |
|