Home »

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

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

103 Записи
4 Пользователи
2 Likes
36.9 Тыс. Просмотры
STALKER_SLX
Записи: 201
Создатель темы
(@stalker_slx)
Estimable Member
Присоединился: 5 лет назад

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

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

Нашел простенький батник (назовём его «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. Будет такой скрипт нормально выполняться на продакшин серверах ( сам пока еще не тестировал) ?! Или нужно что-то иное применять?!

Ответить
102 Ответов
Записи: 899
Admin
(@zerox)
Prominent Member
Присоединился: 10 лет назад

Я вот такой строкой чищу директории старше 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)
Присоединился: 5 лет назад

Estimable Member
Записи: 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" - заменяет раннее указанный в строке путь к папке, которую мы чистим?!

Ответить
Записи: 899
Admin
(@zerox)
Prominent Member
Присоединился: 10 лет назад

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

Ответить
STALKER_SLX
Записи: 201
Создатель темы
(@stalker_slx)
Estimable Member
Присоединился: 5 лет назад

Спасибо Вам, 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!

Ответить
Записи: 94
(@konyuhov)
Trusted Member
Присоединился: 4 года назад

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

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

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

 смотреть  :

https://mega.dp.ua/sxyz29Y

  https://dropmefiles.net/CkSz

https://dropmefiles.net/fzHZm

Ответить
Страница 1 / 18
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar