BATch Processing: автоматическое удаление файлов и папок в каталоге

Удаление всего содержимого в каталоге с помощью стандартного пакетного .BAT скрипта Windows.

 Иногда возникает ситуация, когда нужно быстро - одним кликом, очистить определённый каталог от всего, что там присутствует. Допустим, вы работаете в некой программе, ежедневно выполняете определённые рутинные операции, после которых, в определённом каталоге остаётся всяческий мусор: временные файлы, файлы резервных копий, ненужные изображения и непонятные папки с дурацкими названиями. Понятно, что можно просто взять и выделить всё это "добро" мышкой, а затем удалить. Терпимо, но не очень. А вдруг там 9689 файлов? Да ещё и с изображениями кого-то, кто очень похож на вас, только он почему-то наряжен в колготки "сеточки", сильно пьян, да ещё и с котом в обнимку!

Со временем вся эта возня начнёт раздражать. Это даже может привести вас в ярость, с незапланированной перестановкой мебели. В конце концов компьютер - это средство автоматизации, так что давайте по-автоматизируем немного.
Мы напишем маленький, но очень полезный пакетный файл Windows, он же в простонародье "батник" (от расширения *.BAT), состояший всего из двух строк, этот скрипт и будет мгновенно, по щелчку очищать указанную директорию с мусором, а главное - он также будет удалять папки и всё, что в них содержится (довольно просто удалить файлы с помощью пакетного скрипта, но не директории).
Прежде, чем мы приступим к нашим маленьким шалостям, вам нужно усвоить одно важное замечание ниже:

WARNING! Будьте осторожны экспериментируя с пакетными файлами! Вы можете нечаянно удалить важные для вас данные или вовсе повредить систему! Файлы, удалённые пакетным скриптом НЕ ПОМЕЩАЮТСЯ В КОРЗИНУ! Вам понадобится специальное программное обеспечение, что бы восстановить удалённые данные! Лучшей практикой будет производить все эксперименты на отдельном, пустом разделе диска, где будут только те файлы, над которыми вы будете производить манипуляции и эксперименты!

Предварительные условия: предпологается, что у вас есть папка 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, там - зияет пустота.

Заключение: Не делай этого! Код, представленный в этом маленьком руководстве - очень упрощённая конструкция, состоящая всего из двух команд, при желании, можно усовершенствовать данный скрипт и расширить его функционал в соответствии с вашими потребностями. Так же, этот скрипт можно присбособить в любое место и в любом каталоге, нужно только указать имя папки, которую вы собираетесь периодически очищать.
Такая "простота" данного скрипта вовсе не случайна, главная цель - указать отправную точку, а дальше вы будете путешествовать сами.
Ну, а теперь мне пора, кажется кто-то опять размотал рулон с туалетной бумагой и готовиться приступить к обоям.

*Краткое объяснение команд:

  1. @CD - Сменить дерикторию (Change Directory). Осуществляет смену рабочей директории (если таковая существует), в нашем случае, команда CD "зашла" в дерикторию TRASH и все последующие операции, будут выполнятся именно в ней.
    Знак @ перед командой, указывает командному интерпретатору (cmd.exe), что бы он не выводил в консоль саму команду, а только результат её работы.
  2. @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 отключает запрос подтверждения при удалении файлов.
Добавлено: 20.12.2023, 02:45 | Последнее обновление: 19.02.2024, 15:37

Comments

Popular posts from this blog

BATch Processing: автоматическое переименование файлов

Blogger: скрыть боковое меню (Sidebar) в шаблоне Contempo