我正在寻找一个很好的批处理脚本,可以快速find并清理所有已知的安全临时文件夹/文件从Windows(尽可能多变种)机器(如Windows临时文件夹,所有用户IE临时文件夹等)。 我喜欢CCleaner(通过Cleanmgr.exe)的UI工具,但是当我试图快速清理几台电脑和/或以最less的介入时 ,最好有一个脚本。
再加上一个脚本,我可以将几个脚本链接在一起。 也许一个然后启动各种防病毒和/或恶意软件检测器。
任何人都有一个好的或可以指向一个好的资源?
这是我写的一个小脚本,我保持在我的USB实用程序驱动器…伟大的思杰服务器:)
@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
使用风险自负,等等…这个删除了东西。
我从Vista的Documents and Settings文件夹或Users中运行。 你可以轻易地把CD命令放在最上面,从任何你想要的地方运行。
cd %userprofile% cd ..
此外,根据我的经验,在任何时候清除临时文件夹通常都是安全的。 在temp中使用文件的程序将locking它们,并且这个脚本将在该文件上出现错误并继续。
IF EXIST行在这里特别好,它使脚本无法在NetworkService和类似的文件夹中创build文件夹,并且如果你没有在Vista或XP上运行,那部分速度会非常快。
创buildtemps.txt日志文件,从哪里运行脚本
编辑:来自Freenode上的## windows-server的build议:问:为什么你不能在开始时检测到它运行的是哪个操作系统,并运行相应的部分? 答:我经常在脱机媒体上使用这个脚本,例如已经提取的硬盘。
注意捣毁临时文件。 一些软件安装程序在引导之间存储文件。 我的一位老上司在那里储存了重要的文件(但是,那时他对某些事情并不太乐观)。
在batch file中,执行:
DEL /S /Q "%TEMP%\*.*"
会做你想要的。 作为login脚本运行(或通常login时)将清除每个用户的临时目录。 将其作为启动脚本运行(以.DEFAULT运行时)将清除每台计算机的临时目录。
我有一个VBScript,我运行它来清除启动时的临时文件和基于他们的年龄login。 这是属于客户的东西,所以我不能把它发布在这里(写在他们的硬币),但它是一个scripter可以在几分钟内为你放在一起的东西。
我不知道支持的API来清理IE“临时Internet文件”。 我想你可以删除它们,但我不会。
cleanmgr是清理临时目录的最安全的方法。 缺点是你必须在每台机器上运行sageset,或者(更简单的方法是)使用registry项创buildADM文件,并使用组策略将它们推送到客户端桌面。 要注意的registry项是:HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ VolumeCaches
另请参阅如何在Windows XP中自动执行磁盘清理工具
你们都太难了 这是他问的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,因为它已经拥有了你所需要的所有function。 然后使用Psexec推送脚本,调用Ccleaner,然后在完成时删除Ccleaner。 您可以添加一个.ini文件,其中包含Ccleaner中所需的所有设置。 这样,你不必重新发明轮子。 这完全是关于重复使用。
我宁愿删除文件比在XP上的文件夹; 因为我们有一个存储临时文件的应用程序,并将它们留在那里。 我想要删除所有用户configuration文件中的文件。
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)