web-dev-qa-db-ja.com

XPのバッチスクリプトから一時ファイルを削除する

私は、Windowsの既知の安全な一時フォルダー/ファイル(可能な限り多くのバリアント)マシン(たとえば、Windows一時フォルダー、すべてのユーザーIE tempフォルダなど)。私はCCleaner(Cleanmgr.exeよりも)のようなUIツールが好きですが、複数のコンピューターをクリーンアップしようとするとき迅速に、または最小限の関与での場合、スクリプトがあればいいでしょう。

さらに、スクリプトを使用すると、複数のスクリプトをチェーンすることができます。たぶん、その後、さまざまなウイルス対策やマルウェア検出プログラムを起動します。

誰かが良いものを持っているか、良いリソースを指すことができますか?

7
Keith Bentrup

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フォルダまたはVistaのユーザーから実行します。簡単にCDコマンドを上に投げて、どこからでもこれを実行できます。

cd %userprofile%
cd ..

また、私の経験上、いつでも一時フォルダをクリアしても安全です。 tempでファイルを使用するプログラムはそれらをロックし、このスクリプトはそのファイルでエラーが発生して続行します。

IF EXIST行はここでは特に便利です。スクリプトがNetworkServiceや類似のフォルダーにフォルダーを作成しないようにします。VistaまたはXPで実行していない場合、そのセクションは非常に高速になります。

スクリプトを実行した場所にtemps.txtログファイルを作成します

編集:Freenodeの## windows-serverからのアドバイス:Q:最初に実行しているOSを検出して、適切なセクションを実行しないのはなぜですか? A:抽出されたハードドライブなどのオフラインメディアでスクリプトを頻繁に使用します。

7
Garrett

一時ファイルをゴミ箱に捨てないように注意してください。一部のソフトウェアインストーラーは、ブートの間にファイルを隠します。私の古い上司がそこに重要なファイルを保存しました(しかし、彼はいくつかのことについてあまり明るくありませんでした)。

バッチファイルで、次の操作を行います。

DEL /S /Q "%TEMP%\*.*"

あなたがしたいことをします。これをログオンスクリプトとして実行すると(または一般的にはログオンしているときに)、ユーザーごとの一時ディレクトリがクリアされます。起動スクリプトとして(.DEFAULTとして実行しながら)実行すると、マシンごとの一時ディレクトリがクリアされます。

起動時とログオン時に、それらの年齢に基づいて一時ファイルを消去するために実行するVBScriptを持っています。これはお客様のものなので、ここに投稿することはできません(ダイムに書いてください)が、スクリプト作成者が数分でまとめることができるものです。

IE "Temporary Internet Files"を削除するためにサポートされているAPIを知りません。削除することはできますが、私はできません。

3
Evan Anderson

一時ディレクトリをクリーンアップする最良のsafe方法は、cleanmgrを使用することです。欠点は、各マシンでsagesetを実行する必要がある、または(さらに簡単に)レジストリエントリを含むADMファイルを作成し、グループポリシーを使用してそれらをクライアントデスクトップにプッシュすることです。確認するレジストリキーは、HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCachesです。

参照 Windows XPでディスククリーンアップツールを自動化する方法

3
Jim B

あなたはすべてそれをあまりにも難しくしています。これは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\*.*"
1
Julius Thyssen

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)

スクリプトにCcleanerを使用しないでください。必要なすべての関数がすでに含まれているからです。次に、Psexecを使用してCcleanerを呼び出すスクリプトをプッシュし、完了したらCcleanerを削除します。 Ccleanerで必要なすべての設定を含む.iniファイルを追加できます。この方法では、ホイールを再発明する必要はありません。それはすべて再利用に関するものです。

0
Vito