16 Январь 2019, 07:05

Цитата дня:

Монстры реальны, и привидения тоже. Они живут внутри нас и иногда побеждают. Стивен Кинг


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

Автор STALKER_SLX, 25 Декабрь 2018, 12:03

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

Вниз

STALKER_SLX

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

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

ival

Remove-Item %Temp%\* -recurse -force
Remove-Item C:\windows\temp\* -recurse -force

Я бы так делал


STALKER_SLX

Remove-Item %Temp%\* -recurse -force
Remove-Item C:\windows\temp\* -recurse -force

Я бы так делал
Я так понимаю, что эти строки нужно запускать в оболочке PowerShell?!
А если нужно на нескольких десятках (или больше) машин запускать, то выходит довольно таки хлопотно…

Хотелось бы получить более универсальный скрипт, который можно будет запускать каждый раз при старте ОС или в планировщике заданий в нужное время.

ival

Не совсем понятно, чем запуск ps отличается от запуска cmd? Ps достаточно универсальный и гибкий инструмент, в отличие от командной строки, которая прямолинейна и убога. Он не подойдет если только у вас xp, во всех остальных случаях от cmd лучше вообще отказаться.

Уваров А.С.

Вопрос только - зачем? Если почистить диск - есть штатные механизмы, а если дисковое не поджимает, то лежит оно там и пусть лежит. Разве что за какой программной целенаправленно убираться.

STALKER_SLX

Спасибо ВСЕМ откликнувшимся за помощь!
Данную задачу решил следующим образом - к указанным выше строкам добавил еще парочку (которые как раз таки отвечают за удаление ПАПОК, по заданным путям):
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, но буду стараться заполнить этот пробел :)
Как только появиться немного времени попробую еще погуглить, чтобы решить эту же задачу более элегантно и универсально, но средствами самого PowerShell!

ival

Вы молодец, что начали разбираться и достигли результата. Но всё-таки посмотрите на мои 2 строчки и на свои много строк)) забудьте cmd и начните все-таки использовать ps.

Уваров А.С.

PS безусловно мощная вещь, но вымораживает в нем одно - синтаксис.

Как средство автоматизации посредством скриптов - ОК, все равно скрипты пишутся в IDE, а там и подсветка, и автодополнение, и прочие плюшки. Но как средство администрирования PS вызывает только глухое раздражение. Мое мнение: его писали программисты и для программистов.

Другое дело bash - лаконичен и универсален.

ival

PS безусловно мощная вещь, но вымораживает в нем одно - синтаксис.

Как средство автоматизации посредством скриптов - ОК, все равно скрипты пишутся в IDE, а там и подсветка, и автодополнение, и прочие плюшки. Но как средство администрирования PS вызывает только глухое раздражение. Мое мнение: его писали программисты и для программистов.

Другое дело bash - лаконичен и универсален.
Соглашусь, что с первого взгляда он очень нелогичен, плюс командлеты есть пересекающиеся, плюс много не явных команд. Но других вариантов нет. Думаю в скором приближении им придётся пользоваться всегда, т.к. относительно недавно MS начала продвигать свой бесплатный продукт windows admin center. Скорее всего они хотят перевести людей на core, а GUI оставить как дополнение. На wac я бегло посмотрел и пришёл к выводу, что базово им можно пользоваться, но что-то не тривиальное придётся делать через ps.

Вверх