Home »

bat-файл для очистк...
 

[Решено] bat-файл для очистки временных файлов и ПАПОК

Страница 1 / 2

STALKER_SLX
Сообщения: 201
Topic starter
(@stalker_slx)
Devops
Присоединился: 3 года назад

Доброго времени суток, уважаемые форумчане!

Тема данного вопроса уже многократно избита на просторах Интернета, но очень бы хотелось услышать мнение опытных практикующих админов!

Нашел простенький батник (назовём его «del_tmp.bat») со следующим содержимым:

@echo OFF

del %Temp%\*.* /S /F /Q

del c:\windows\temp\*.* /S /F /Q

echo Vse vremennyie fayly udaleny

pause

@echo ON

 

Данный скрипт хорошо справляется с удалением временных файлов в профиле пользователя и чистит c:\windows\temp. Но есть одно «Но» - он удаляет только лишь файлы!

1. В связи с чем вопрос: какие строки нужно добавить в указанный bat-файл, чтобы он удалял и ПАПКИ по указанных путях?!

2. Если есть у кого-то скрипт получше – прошу поделится!

3. Будет такой скрипт нормально выполняться на продакшин серверах ( сам пока еще не тестировал) ?! Или нужно что-то иное применять?!

Ответить
16 Ответов
Zerox
Сообщения: 669
Admin
(@zerox)
Honorable Member
Присоединился: 7 лет назад

Я вот такой строкой чищу директории старше 30 дней:

forfiles /p D:\tmp /s /d -30 /c "cmd /c rmdir /s /q @path"

А вот этой файлы:

forfiles /p D:\tmp /s /d -30 /c "cmd /c del @path /q"

Ответить
1 Ответить
STALKER_SLX
(@stalker_slx)
Присоединился: 3 года назад

Devops
Сообщения: 201

А если эти две строки

forfiles /p D:\tmp /s /d -30 /c "cmd /c rmdir /s /q @path"

forfiles /p D:\tmp /s /d -30 /c "cmd /c del @path /q"

объединить в один BAT-файл, будет нормально работать? Если да, то прошу подсказать какова будет итоговая конструкция?! Или таки нужно их по отдельности запускать из командной строки?

Прошу простить за малограмотность, правильно ли я понимаю, что "@path" - заменяет раннее указанный в строке путь к папке, которую мы чистим?!

Ответить
Zerox
Сообщения: 669
Admin
(@zerox)
Honorable Member
Присоединился: 7 лет назад

Я не помню, что там к чему, можно легко загуглить команду forfiles и почитать описание. У меня батник из двух таких команд работает в шедулере на ноутбуке и чистит папку с временными файлами. 

Ответить
STALKER_SLX
Сообщения: 201
Topic starter
(@stalker_slx)
Devops
Присоединился: 3 года назад

Спасибо Вам, Zerox, за помощь!

Данную задачу решил следующим образом – к указанным выше строкам добавил еще парочку (которые как раз таки отвечают за удаление ПАПОК, по заданным путям):

SET Path2Del=C:\Windows\Temp\

for /R "%Path2Del%" %%F in (.) DO IF NOT "%%F"=="%Path2Del%." (RD /S /Q "%%F") ELSE (Del /F /S /Q "%Path2Del%*")

SET Path2Del=%Temp%\

for /R "%Path2Del%" %%F in (.) DO IF NOT "%%F"=="%Path2Del%." (RD /S /Q "%%F") ELSE (Del /F /S /Q "%Path2Del%*")

 

В итоге вся конструкция теперь выглядит так:

@echo off

del %Temp%\*.* /S /F /Q

del C:\Windows\Temp\*.* /S /F /Q

SET Path2Del=C:\Windows\Temp\

for /R "%Path2Del%" %%F in (.) DO IF NOT "%%F"=="%Path2Del%." (RD /S /Q "%%F") ELSE (Del /F /S /Q "%Path2Del%*")

SET Path2Del=%Temp%\

for /R "%Path2Del%" %%F in (.) DO IF NOT "%%F"=="%Path2Del%." (RD /S /Q "%%F") ELSE (Del /F /S /Q "%Path2Del%*")

echo Vse vremennyie faylyi i papki udaleny

pause

@echo ON

 

Если кому- то в будущем понадобиться такой файлик, то прикрепляю его в архиве «del_tmp_files_&_folders.zip»

P.S.: Как только появиться немного времени попробую еще погуглить, чтобы решить эту же задачу более элегантно и универсально, но средствами самого PowerShell!

Ответить
konyuhov
Сообщения: 9
(@konyuhov)
Младший сисадмин
Присоединился: 2 года назад

хоршо спасиб, пригодился как дополнинение к ма-моему батнику..

мой батник делает тоже, но чистит все подряд, т.е любой кеш

есля этот код прикрерипить к моему получится,- то что надо

 смотреть  :

https://mega.dp.ua/sxyz29Y

  https://dropmefiles.net/CkSz

https://dropmefiles.net/fzHZm

Ответить
Страница 1 / 2