Windows で特定の時間より古いファイルを定期的に削除するにはどうすればよいですか?

Windows で特定の時間より古いファイルを定期的に削除するにはどうすればよいですか?

Windows (具体的には Windows 7) で、3 時間ごとにすべてのフォルダー内の 24 時間以上経過したファイルをすべて削除するスケジュール プロセスを作成したいと考えています (Unix の find のように-mtime +1)。基本的に、これは Unix cron でこれを構成するのと同等の Windows の機能です。

find $TRANSITDIR -mtime +1 -exec rm -rf {} \;

Windowsのcronに相当するものは、スケジューラただ、それを実行するための Windows コマンドが分からないのです。

すぐに使えるスケジューラ スクリプトを持っている人はいますか?

答え1

次の内容のバッチ ファイルを作成します。

REM Remove files older than 1 day
forfiles /p %1 /s /m * /c "cmd /c del @path /q" /d -1

次に、Windows タスク スケジューラを開きます。プログラムを実行するための基本タスクを作成し、引数としてフォルダーへのパスを引用符で囲んで指定します。

コマンドの説明

REMコメントです。

forfiles各ファイルに対してコマンドを実行します。/p %1は、ファイルが存在するパスを定義します (%1スクリプトに渡される最初のコマンド ライン引数の値を意味します)。/sは再帰的です (サブフォルダーに移動します)。/m *.*はファイル名マスクです。/c "cmd /c del @path"実行するコマンドを指定します。 は、/d -11 日以上前のファイルを意味します。

この場合、はcmd /c del @pat /qh新しいセッションを作成し、delで (delete file)を実行します。@pathによって反復される各ファイルのファイルパスは、静かなモード用であるため、forfiles/qディレクトリの確認を求めない

テスト

delを に置き換えますecho。これにより、実際に削除されるのではなく、削除されるはずだった各ファイルが印刷されます。

答え2

あなたがまさにやりたいことではないかもしれませんが、Windows について話すときは、CCleaner の自動消去を考慮する価値があると思います。私は、Windows マシンの tmp ファイルを見つけて消去するためにこれを使用しています。

CLIは制限されているhttp://www.piriform.com/docs/ccleaner/advanced-usage/command-line-parameters#CCleaner のコマンドラインパラメータ

また、あなたがシェル ユーザーであり、W7 に必要だと言った場合は、PowerShell を試すことができます。

http://www.google.es/search?q=powershell+remove+x+day+older+files

関連情報