Найти в Дзене
Kotogvin

Как очистить папку от содержимого командным файлом

Задача:
По расписанию полностью очищать общую папку на сервере от содержимого.
Решение:
После долгих экспериментов с командами и проб кучи различных скриптов было найдено простое решение.

Задача:

По расписанию полностью очищать общую папку на сервере от содержимого.

Решение:

После долгих экспериментов с командами и проб кучи различных скриптов было найдено простое решение.

Создаем на диске два файлика:

1. bat-файл «Clear.bat»
Он будет выполнять очистку папки от содержимого.
Копируем в него следующий код:

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Скрипт очистки заданного каталога
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Задайте путь к очищаемому каталогу
set hlam=»D:\Test\Temp»
:: Задайте путь к антивирусному файлу
set arinf=»D:\Test\autorun.inf»
:: Удаляем содержимое заданного каталога
pushd %hlam%
rmdir /s /q %hlam%
popd
:: Копируем антивирусный файл в корень очищенного каталога с сохранением прав
xcopy %arinf% %hlam% /o /y

2. inf-файл «autorun.inf»
Просто пустой файл с установленными на него через NTFS запретами на изменение для пользователей и полными правами для Администраторов и Systems. Данный файл с такими правами требуется для защиты от перезаписи его вирусами и последующее их распространение через автозапуск.

Пояснение:

В первых двух строках задается расположение этих файлов на диске.

Затем строка, которая и производит очистку папки.

Последней строкой мы копируем файл autorun.inf в очищенную папку, который предотвратит автозапуск возможных вирусных файлов. Как вариант файл autorun.inf можно и не копировать скриптом, а просто в очищаемой папке создать его и снять с него в NTFS все права для всех и Системы тоже. В данном случае его также никто не сможет ни удалить, ни перезаписать.

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

Это нормально. Т.к. во время очистки папки скрипт переходит в неё и она оказывается занятой им. В итоге это и позволяет сохранить её от удаления.

Последним шагом мы добавляем выполнение этого bat-файла в штатный планировщик задач Windows на запуск в нужное время от имени Администратора.

Данное решение работоспособно и обкатано годами. Если у вас есть свои решения данной задачи буду рад выслушать их. Пишите ваши комментарии и советы!

28 Сен 2010