Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Удаление старых файлов по имени файлов (http://forum.oszone.net/showthread.php?t=173471)

Bиктор 18-04-2010 17:01 1395644

Удаление старых файлов по имени файлов
 
Помогите пожалуйста, напишите bat файл, который оставлял в папке последние 2 архива (т.е. 2 zip и одноименные 2 log к ним ), бекапы делаются не обязательно каждый день.

файлы по такому шаблону идут.
Код:

DPA_DD-MM-YYYY_dif.zip
DPA_DD-MM-YYYY_dif.log

в имени меняются только даты DD-MM-YYYY
читать дальше »
Код:

DPA_05-04-2010_dif.zip
DPA_05-04-2010_dif.log
DPA_06-04-2010_dif.zip
DPA_06-04-2010_dif.log
DPA_08-04-2010_dif.zip
DPA_08-04-2010_dif.log
DPA_09-04-2010_dif.zip
DPA_09-04-2010_dif.log
DPA_11-04-2010_dif.zip
DPA_11-04-2010_dif.log
DPA_13-04-2010_dif.zip
DPA_13-04-2010_dif.log
DPA_14-04-2010_dif.zip
DPA_14-04-2010_dif.log



видел нечто похожее в теме "удаление файлов по маске, созданных за прошлые сутки" но скрипт с датами и мне не подходит.

amel27
Спасибо большое, проблемы с интернетом не смог ответить разу.

amel27 19-04-2010 03:37 1395937

Цитата:

Цитата Bиктор
оставлял в папке последние 2 архива»

вариант 1:
Код:

For /F "Tokens=2-4 Delims=_-" %%i In ('DIR /B/A-D DPA_??-??-????_dif.zip') Do Set $_%%k%%j%%i=DPA_%%i-%%j-%%k_dif.*
For /F "Tokens=2 Skip=2 Delims==" %%i In ('Set $_^|Sort /R') Do DEL /Q/F %%i

вариант 2:
Код:

If Exist %~n0.tmp DEL %~n0.tmp
For /F "Tokens=2-4 Delims=_-" %%i In ('DIR /B/A-D DPA_??-??-????_dif.zip') Do Echo %%k%%j%%i DPA_%%i-%%j-%%k_dif.* >>%~n0.tmp
For /F "Tokens=2 Skip=2" %%i In ('Sort /R %~n0.tmp') Do DEL /Q/F %%i



Время: 13:32.

Время: 13:32.
© OSzone.net 2001-