mark23
27-06-2011, 23:07
здравствуйте, прошу Вас помочь в решении одной задачи.
в определенном каталоге находятся архивы, которые именуются по дате их создания, пример названия таких файлов:
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
если нет решения этой задачи, то как ее решить???
в определенном каталоге находятся архивы, которые именуются по дате их создания, пример названия таких файлов:
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
если нет решения этой задачи, то как ее решить???