用于删除 XP、Vista 和 7 中所有用户的临时文件的脚本

用于删除 XP、Vista 和 7 中所有用户的临时文件的脚本

基本上,我们有许多客户运行 XP 和 7,另外还有几台 Vista 机器。

我发现这个批处理脚本,但它仅限于当前用户(使用 %userprofile% 环境变量)。我正在寻找类似的东西,但它会运行所有用户帐户在计算机上。该脚本将以管理员身份运行。

对于 XP,它将删除以下内容:
Local Settings\Temp
Local Settings\Temporary Internet Files

对于 Vista/7,它将删除以下内容:
AppData\Local\Temp
AppData\Local\Microsoft\Windows\Temporary Internet Files

我对脚本编写相对缺乏经验,我不确定批处理文件是否可以做到这一点。有没有人尝试过这种方法并找到了解决方案?

答案1

我用这个取得了一些成功。您可能需要根据您的环境对其进行编辑,但对我来说,它适用于 XP Vista 和 7。有几件事,确保它在影响最小的时候运行,并了解它对您来说具有最大的侵入性,因为它会删除文件夹并重新创建它们。如果您不想删除文件夹而只是删除内容,您可以将更rmdir改为并在文件路径末尾del /f添加,然后删除该行。\mkdir

这会删除大量内容,请您自行承担风险。

@echo off

IF EXIST c:\windows\temp\ del /f /s /q c:\windows\temp\

DEL /f /s /q %temp%\

IF EXIST "C:\Documents and Settings\" (
    for /D %%x in ("C:\Documents and Settings\*") do ( 
        rmdir /s /q "%%x\Local Settings\Temporary Internet Files" 
        mkdir "%%x\Local Settings\Temporary Internet Files" 
    )
)

IF EXIST "C:\Documents and Settings\" (
    for /D %%x in ("C:\Documents and Settings\*") do ( 
        rmdir /s /q "%%x\Local Settings\Temp" 
        mkdir "%%x\Local Settings\Temp" 
    )
)

IF EXIST "C:\Users\" (
    for /D %%x in ("C:\Users\*") do ( 
        rmdir /s /q "%%x\AppData\Local\Temp" 
        mkdir "%%x\AppData\Local\Temp" 
    )
)

IF EXIST "C:\Users\" (
    for /D %%x in ("C:\Users\*") do ( 
        rmdir /s /q "%%x\AppData\Local\Microsoft\Windows\Temporary Internet Files" 
        mkdir "%%x\AppData\Local\Microsoft\Windows\Temporary Internet Files" 
    )
)

请注意,这将不同的文件夹分开,主要是为了清晰起见,但如果您想要压缩它,您可以将其压缩为仅 2 个循环。一个例子是:

IF EXIST "C:\Users\" (
    for /D %%x in ("C:\Users\*") do ( 
        rmdir /s /q "%%x\AppData\Local\Temp" 
        mkdir "%%x\AppData\Local\Temp" 
        rmdir /s /q "%%x\AppData\Local\Microsoft\Windows\Temporary Internet Files" 
        mkdir "%%x\AppData\Local\Microsoft\Windows\Temporary Internet Files" 
    )
)

根据请求,压缩并使用删除命令。

@echo off

IF EXIST c:\windows\temp\ del /f /s /q c:\windows\temp\

DEL /f /s /q %temp%\

IF EXIST "C:\Users\" (
    for /D %%x in ("C:\Users\*") do ( 
        del /f /s /q "%%x\AppData\Local\Temp\" 
        del /f /s /q "%%x\AppData\Local\Microsoft\Windows\Temporary Internet Files\" 
    )
)

IF EXIST "C:\Documents and Settings\" (
    for /D %%x in ("C:\Documents and Settings\*") do ( 
        del /f /s /q "%%x\Local Settings\Temp\" 
        del /f /s /q "%%x\Local Settings\Temporary Internet Files\" 
    )
)

答案2

cd C:\Users\%用户名%\AppData\Local rmdir /S /Q Temp

删除 C:\Windows\Prefetch*.* /Q

删除 C:\Windows\Temp*.* /Q

del C:\Users\%用户名%\AppData\Roaming\Microsoft\Windows\Recent Items*.* /Q 暂停

答案3

对我来说这个命令很好用,试试这个,它会删除所有临时文件

cd \
Del *.tmp /s

相关内容