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

Chr*_*ris 2 files windows-7 windows-xp batch-file windows-vista

基本上,我们有许多客户使用一些 Vista 机器运行 XP 和 7。

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

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

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

我对脚本编写相对缺乏经验,我不确定批处理文件是否可以做到这一点。有没有人沿着这条路走下去并找到了解决方案?

Mas*_*ant 5

我已经用这个取得了一些成功。您可能需要为您的环境编辑它,但对我来说它适用于 XP Vista 和 7。 有几件事,请确保它在影响最小的时间运行,并了解它尽可能地具有侵入性,因为它删除了文件夹并重新创建它们。您可以更改rmdirtodel /f并将 a 添加\到文件路径的末尾,然后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" 
    )
)
Run Code Online (Sandbox Code Playgroud)

请注意,这将不同的文件夹分开,主要是为了清楚起见,但如果您想压缩它,您可以将其压缩为仅 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" 
    )
)
Run Code Online (Sandbox Code Playgroud)

每个请求,压缩并使用删除命令。

@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\" 
    )
)
Run Code Online (Sandbox Code Playgroud)