web-dev-qa-db-ja.com

robocopyで30日以上経過したファイルを削除するにはどうすればよいですか?

私は2つのフォルダーをrobocopy(srcとミラー)と同期させており、30日間はミラー内のファイルを削除しないようにしています。 /MINAGEオプションを使用して、「30日より古いすべてのファイルを検討する」と言って、ミラー内の30日経過したファイルのみを削除しましたが、使用可能なファイルに対してのみ機能しているようです(削除されていません)。

robocopy /MIR /MINAGE:30 /SD:src /DD:mirror

したがって、基本的に、新しいファイルを作成すると、ミラー内で正しく同期されます(ファイルをまったく削除しない別のrobocopyタスクによって)。また、削除した翌日には、前のコマンドを実行したときにミラー内のファイルも削除されます。要約すると、srcフォルダーで削除され、ミラーで30日以上経過したファイルを削除したいと思います。

何か不足していますか?

ありがとうございました。

3
Julio Guerra

Robocopyでそれを行う方法がわかりませんが、あなたがしているのと同じことをしたいときは、次の行をバッチファイルに入れます。

forfiles -p %_BACKUPPATH% -m *.rar -d -3 -c "cmd /c del @path"

解剖は次のとおりです。

  • forfiles-ファイルをフィルタリングするためのプログラム
  • -p %_BACKUPPATH% ---pは「パス」を示します(私のものは%_BACKUPPATH%ですが、これを「実際の」パスに置き換えることができます)。それ以外の場合は、現在のディレクトリを使用します。
  • -m *.rar-ファイルタイプ.rarでフィルタリングし、*.*のこのパラメータをスキップします
  • -d -3-3日以上経過したファイルのみに影響します(-3
  • -c "cmd /c del @path"--cの後ろは、見つかった各ファイルに対して実行されるもので、この場合はdelです。
5
Mark Henderson