Доброго времени суток, уважаемые форумчане!
Тема данного вопроса уже многократно избита на просторах Интернета, но очень бы хотелось услышать мнение опытных практикующих админов!
Нашел простенький батник (назовём его «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. Будет такой скрипт нормально выполняться на продакшин серверах ( сам пока еще не тестировал) ?! Или нужно что-то иное применять?!
Я вот такой строкой чищу директории старше 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"
Я не помню, что там к чему, можно легко загуглить команду forfiles и почитать описание. У меня батник из двух таких команд работает в шедулере на ноутбуке и чистит папку с временными файлами.
Спасибо Вам, 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!
хоршо спасиб, пригодился как дополнинение к ма-моему батнику..
мой батник делает тоже, но чистит все подряд, т.е любой кеш
есля этот код прикрерипить к моему получится,- то что надо
смотреть :