web-dev-qa-db-ja.com

XP、Vista、7のすべてのユーザーの一時ファイルを削除するスクリプト

基本的に、少数の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

私はスクリプト作成に比較的慣れていないので、バッチファイルでこれができるかどうかはわかりません。誰かがこの道を進んで解決策を見つけましたか?

2
Chris

私はこれをある程度成功させました。お使いの環境に合わせて編集する必要があるかもしれませんが、私にとってはXP Vistaおよび7で機能します。いくつかのことは、一度に実行して影響が最小であることを確認し、それを理解してください。フォルダーを削除して再作成するため、実際に得ることができるのと同じくらい煩わしいです。rmdirdel /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\" 
    )
)
5
MaskedPlant