BATch Processing: автоматическое удаление файлов и папок в каталоге
Удаление всего содержимого в каталоге с помощью стандартного пакетного .BAT скрипта Windows.
Иногда возникает ситуация, когда нужно быстро - одним кликом, очистить определённый каталог от всего, что там присутствует. Допустим, вы работаете в некой программе, ежедневно выполняете определённые рутинные операции, после которых, в определённом каталоге остаётся всяческий мусор: временные файлы, файлы резервных копий, ненужные изображения и непонятные папки с дурацкими названиями. Понятно, что можно просто взять и выделить всё это "добро" мышкой, а затем удалить. Терпимо, но не очень. А вдруг там 9689 файлов? Да ещё и с изображениями кого-то, кто очень похож на вас, только он почему-то наряжен в колготки "сеточки", сильно пьян, да ещё и с котом в обнимку!
Со временем вся эта возня начнёт раздражать. Это даже может привести вас в ярость, с незапланированной перестановкой мебели. В конце концов компьютер - это средство автоматизации, так что давайте по-автоматизируем немного.
Мы напишем маленький, но очень полезный пакетный файл Windows, он же в простонародье "батник" (от расширения *.BAT), состояший всего из двух строк, этот скрипт и будет мгновенно, по щелчку очищать указанную директорию с мусором, а главное - он также будет удалять папки и всё, что в них содержится (довольно просто удалить файлы с помощью пакетного скрипта, но не директории).
Прежде, чем мы приступим к нашим маленьким шалостям, вам нужно усвоить одно важное замечание ниже:
.png)
Предварительные условия: предпологается, что у вас есть папка TRASH (название для примера, у вас оно может быть другим), в которую складируется весь наш мусор и хлам. Находится этот каталог, например, в корне диска D:\ (D:\TRASH).
Создать наш пакетный файл, то бишь скрипт - очень просто: открываем обычный текстовый редактор, типа Блокнот, и вводим туда две строки из кода, представленного ниже (краткое объяснение этих команд будет ниже):
@CD TRASH @FOR /F "delims=" %%i IN ('dir /B') DO (RD "%%i" /S/Q || DEL "%%i" /S/Q)
Сохраняем наш текстовый файл в корень диска ("Сохранить как...") D:\ (туда, где наша папка TRASH), с расширением bat, не txt! (например: destruct.bat), всё! Наш маленький, но очень опасный скрипт готов. Давайте потестируем: скопируйте в папку TRASH разнородные файлы, всяческие папки с уродливыми именами, в них - еще файликов накидайте, готово. Щёлкаем два раза по нашему скрипту destruct.bat, мелькает чёрное, противное окошко и! Экзекуция завершена, загляните в папку TRASH, там - зияет пустота.
Заключение: Не делай этого! Код, представленный в этом маленьком руководстве - очень упрощённая конструкция, состоящая всего из двух команд, при желании, можно усовершенствовать данный скрипт и расширить его функционал в соответствии с вашими потребностями. Так же, этот скрипт можно присбособить в любое место и в любом каталоге, нужно только указать имя папки, которую вы собираетесь периодически очищать.
Такая "простота" данного скрипта вовсе не случайна, главная цель - указать отправную точку, а дальше вы будете путешествовать сами.
Ну, а теперь мне пора, кажется кто-то опять размотал рулон с туалетной бумагой и готовиться приступить к обоям.
*Краткое объяснение команд:
- @CD - Сменить дерикторию (Change Directory). Осуществляет смену рабочей директории (если таковая существует), в нашем случае, команда CD "зашла" в дерикторию TRASH и все последующие операции, будут выполнятся именно в ней.
Знак @ перед командой, указывает командному интерпретатору (cmd.exe), что бы он не выводил в консоль саму команду, а только результат её работы. - @FOR /F "delims=" %%i IN ('dir /B') DO (RD "%%i" /S/Q || DEL "%%i" /S/Q) - Об операторе FOR можно писать очень долго, много и нудно, буду краток: эта команда организует циклическую обработку результатов выполнения других команд, в нашем случае это команды:
- DIR /B - Выводит содержимое каталога на экран, имена файлов и папок, ключ /B задаёт вывод только имён файлов (без дат).
- RD /S/Q - Удаляет директории в каталоге. Ключ /S указывает команде удалять дерево каталогов, а также всех содержащихся в нём файлов и подкаталогов. Ключ /Q отключает запрос подтверждения при удалении дерева каталогов.
- DEL /S/Q - Удаляет файл(ы) в каталоге. Ключ /S удаляет файлы из всех подкаталогов, ключ /Q отключает запрос подтверждения при удалении файлов.
Comments
Post a Comment