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

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

104 Записи
5 Пользователи
2 Reactions
53.5 Тыс. Просмотры
STALKER_SLX
Записи: 202
Создатель темы
(@stalker_slx)
Reputable Member
Присоединился: 7 лет назад
[#150]

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

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

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


Ответить
103 Ответов
Записи: 971
Admin
(@zerox)
Noble Member
Присоединился: 12 лет назад

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

Reputable Member
Записи: 202

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

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


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

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


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

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


Ответить
1 Ответ
(@avilov-arkadiy)
Присоединился: 11 месяцев назад

New Member
Записи: 2

@stalker_slx спасибо, правда полезно


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

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

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

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

 смотреть  :

https://mega.dp.ua/sxyz29Y

  https://dropmefiles.net/CkSz

https://dropmefiles.net/fzHZm


Ответить
Страница 1 / 18
Много интересного в канале автора в Telegram →
This is default text for notification bar