Удалить временные файлы из пакетного скрипта в XP
Я ищу хороший пакетный скрипт, который бы быстро находил и удалял все известные безопасные временные папки / файлы с компьютеров Windows (как можно больше вариантов) (например, временная папка Windows, все временные папки IE пользователей и т. Д.). Мне нравятся такие инструменты пользовательского интерфейса, как CCleaner (вместо Cleanmgr.exe), но когда я пытаюсь очистить несколько компьютеров быстро и / или с минимальным участием, было бы неплохо иметь скрипт.
Плюс со сценарием, я мог бы связать несколько сценариев вместе. Может быть, затем запустить различные антивирусные и / или вредоносные программы.
У кого-нибудь есть хороший или можно указать хороший ресурс?
6 ответов
Вот небольшой сценарий, который я написал, который я держу на своем USB-носителе... БОЛЬШОЙ для серверов Citrix:)
@echo off
Echo Started %time%
Echo Started %time% >> temps.txt
Echo Running for XP... >> temps.txt
Echo Running for XP...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temp\" (
RMDIR /S /Q "%%G\Local Settings\Temp"
MKDIR "%%G\Local Settings\Temp"
Echo Cleared %%G\Local Settings\Temp
Echo Cleared %%G\Local Settings\Temp >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\Local Settings\Temporary Internet Files\" (
RMDIR /S /Q "%%G\Local Settings\Temporary Internet Files\"
MKDIR "%%G\Local Settings\Temporary Internet Files\"
Echo Cleared %%G\Local Settings\Temporary Internet Files\
Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Running for Vista >> temps.txt
Echo Running for Vista...
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Temp\" (
RMDIR /S /Q "%%G\AppData\Local\Temp\"
MKDIR "%%G\AppData\Local\Temp\"
Echo Cleared %%G\AppData\Local\Temp\
Echo Cleared %%G\AppData\Local\Temp\ >> temps.txt
)
FOR /F "tokens=*" %%G IN ('DIR /B /AD') DO IF EXIST "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\" (
RMDIR /S /Q "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
MKDIR "%%G\AppData\Local\Microsoft\Windows\Temporary Internet Files\"
Echo Cleared %%G\Local Settings\Temporary Internet Files\
Echo Cleared %%G\Local Settings\Temporary Internet Files\ >> temps.txt
)
Echo Done.
Echo Ended %time%
Echo Ended %time% >> temps.txt
Используйте на свой страх и риск, и т.д... ЭТО УДАЛЯЕТ ПЕРСОНАЛ.
Я запускаю это из папки Documents and Settings или Users в Vista. Вы можете легко добавить команду CD наверх, чтобы запустить ее из любого места.
cd %userprofile%
cd ..
Кроме того, в моем случае, как правило, безопасно очищать временную папку в любое время. Программы, использующие файлы в temp, заблокируют их, и этот скрипт выдаст ошибку в этом файле и продолжит работу.
Линия IF EXIST особенно хороша здесь: она не позволяет сценарию создавать папки в NetworkService и аналогичных папках, и если вы не запускаете его в Vista или XP, этот раздел проходит очень быстро.
Создает файл журнала temps.txt, где бы вы ни запускали скрипт
Редактировать: Совет от ##windows-server на Freenode: Q: Почему вы не определяете, на какой ОС он запущен, и запускаете соответствующий раздел? О: Я часто использую сценарий на автономном носителе, например на извлеченном жестком диске.
Лучший безопасный способ очистки временных каталогов - с помощью cleanmgr. Недостатком является то, что вам нужно либо запускать sageset на каждом компьютере, либо (и гораздо проще) создать файл ADM с записями реестра и использовать групповую политику для их отправки на рабочие столы клиентов. ключ реестра для просмотра: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches
Смотрите также Как автоматизировать инструмент очистки диска в Windows XP
Будьте осторожны с уничтожением временных файлов. Некоторые установщики программного обеспечения хранят файлы там между загрузками. Мой старый босс хранил там важные файлы (но, в то же время, он не слишком разбирался в некоторых вещах).
В командном файле выполните:
DEL /S /Q "%TEMP%\*.*"
Будет делать то, что вы хотите. Выполнение этого в качестве сценария входа в систему (или во время входа в систему в целом) очистит временный каталог для пользователя. Запуск его в качестве сценария запуска (при запуске с правами.DEFAULT) очистит временный каталог для каждой машины.
У меня есть VBScript, который я запускаю для очистки временных файлов при загрузке и входе в систему в зависимости от их возраста. Это что-то, что принадлежит Заказчику, поэтому я не могу опубликовать это здесь (написал это на их копейки), но это то, что сценарист мог бы собрать за несколько минут для вас.
Мне не известно о поддерживаемом API для очистки IE "Временные файлы Интернета". Вы могли бы просто удалить их, я полагаю, но я бы не стал.
Вы все делаете это слишком сложно. Это Windows XP, о которой он спрашивает. Вот несколько полезных:
DEL /Q /S "%USERPROFILE%\Local Settings\Temp\*.*"
DEL /F /Q /S "%USERPROFILE%\Local Settings\Temporary Internet Files\*.*" >NUL
DEL /F /Q /S "%WinDir%\Temp\*.*"
Почему бы просто не использовать Ccleaner в своем скрипте, поскольку он уже имеет все необходимые функции. Затем используйте Psexec, чтобы протолкнуть ваш скрипт, который вызывает Ccleaner, а затем удалите Ccleaner, когда закончите. Вы можете добавить INI-файл, содержащий все необходимые настройки в Ccleaner. Таким образом, вам не нужно изобретать велосипед. Это все о повторном использовании.
Я предпочел бы удалить файлы, чем папку на XP; потому что у нас есть приложение, которое хранит много временных файлов и оставляет их там. Я хочу удалить файлы во всех профилях пользователей.
FOR /F "tokens=1" %%G IN ('DIR /B /AD "c:\documents and settings"') DO IF EXIST "c:\documents and settings\%%G\Local Settings\Temp\" (del "c:\documents and settings\%%G\local settings\temp\*.*"/Q)