Dir С(Y):arhiv*.rar /a:-D/b/o:-D > list_of_files.txt

 

dir С(Y):arhiv*.rar– это означает что мы считываем все rar-архивы в папке С(Y):arhiv.

/a:-D– данный параметр означает, что будут выводиться все файлы с указанными атрибутами, ключ -D означает, что нам нужны только файлы, не каталоги, префикс «-» как раз имеет значение отрицание, т.е. не каталоги, если бы мы написали просто D, то он считывал бы и каталоги.

/b– это вывод только имен файлов

/o:-D– это сортировка, ключ –D означает, что будет выполнена сортировка по дате, но сначала более старые, для исправления этого мы уже знаем, что нам поможет префикс «-»

> - означает, что будет выполнено перенаправление вывода в файл list_of_files.txt.

Мы считали все архивы и записали их в файл, далее нам нужно перебрать все эти файлы и оставить только 14 штук, т.е. за последние 2 недели. Это делаем с помощью команды FOR (цикл с параметром), который выполняет определенное действие для каждого файла в папке или каждой строки в файле, как в нашем случае.

for /F "skip=14" %%i in (list_of_files.txt) do (del /Q "%%i")

for– оператор цикла для перебора

/F "skip=14"– это ключ с параметром, который означает, что не нужно обрабатывать первые 14 файлов, т.е. мы их пропускаем.

%%i– переменная, в которой хранится название текущего файла

In (list_of_files.txt)– означает что перебирать все строки именно в этом файле

do (del /Q "%%i") - говорит что необходимо сделать с каждым, в нашем случае мы просто удаляем эти файлы с помощью del /Q ключ /Q для того чтобы у нас не спрашивали подтверждения перед удалением.

Т.о., у нас получился bat-файл:

 

 

Модифицируем данный пример. Предположим, мы хотим оставлять не 14 архивов, а то количество, которое сами захотим, для этого при запуске bat-файла будем вводить число архивов, которое нужно сохранить. Получится следующий скрипт:

 

 

Следует отметить, что в программах можно использовать следующие системные переменные:

%DATE%- показывает текущую дату.

%TIME% - показывает текущее время.

Для примера выполните следующий код:

Переменная %TIME% описана таким образом, для того чтобы результат вывелся в более читабельном виде, попробуйте написать %TIME% и % TIME:~0,-3% у вас, во втором случае уберутся 3 последних знака.