1

Тема: CMD/BAT: Батник для сортировки и удаления старых файлов

ТЗ: Есть директория, по запросу bat файла запаковывает в архив с таким же именем в конце, и 4 цифры года и 2 цифры месяца. Если таких файлов архивов больше 2, то самые старые удалить, что бы осталось только 2.

Но! нужно делать через модификатор skip, и for.

Т.е что бы файлы выстраивались по дате, и оставались только 2 молодых

Есть такой код, но это не то что мне нужно.

 @ECHO OFF
SETLOCAL enabledelayedexpansion

SET mydate=%date:~6,4%%date:~3,2%

SET indir=D:\22

SET destdir=D:\33

SET arcpath=C:\Program Files\WinRAR\WinRAR.exe

"%arcpath%" a -ep1 "%destdir%\%mydate%.rar" "%indir%"

SET count=0
FOR /F "tokens=*" %%i IN ('dir %destdir% /o:-d /b') DO (
	SET /A count=count+1
	IF !count! GTR 2 DEL /q %destdir%\%%i
) 

Спасибо.

2

Re: CMD/BAT: Батник для сортировки и удаления старых файлов

for /f "skip=2 delims=" %%i in ('dir %destdir% /o:-d /b') do del /q %destdir%\%%i

Код выдал Гугл в первой же ссылке.

3

Re: CMD/BAT: Батник для сортировки и удаления старых файлов

mozers пишет:
for /f "skip=2 delims=" %%i in ('dir %destdir% /o:-d /b') do del /q %destdir%\%%i

Код выдал Гугл в первой же ссылке.

Ну и WinRAR (т.к. у ТС используется именно он) умеет добавлять YYYYMM к имени файла:


"%arcpath%" a -ep1 -ag+YYYYMM "%indir%"