コピー元に存在しないファイルを削除する方法としては、/PURGE オプションがあります。しかし、/PURGE オプションを付けただけでは、
という両方の処理が行われてしまいます。
存在しないファイルを削除したいだけなのに、ファイルの更新処理も実行されてしまうので、工夫が必要です。
今回、「コピー元に存在しないファイルをコピー先から削除」のみを行うためには、/NOCOPYオプションを付けて、「コピー元に存在するファイルは新たに更新コピーする」は実行しないようにする必要があります。
robocopy <コピー元フォルダ> <コピー先フォルダ> /PURGE /NOCOPY
ただし、この場合、コピー元/コピー先ディレクトリ直下のファイルのみが処理の対象になり、サブディレクトリ配下については、処理は行われません。(robocopyのデフォルトの動作)
サブフォルダ配下も含めて、コピー元に存在しないファイルをコピー先から削除するためには、/MIR と組み合わせて実行します。
robocopy <コピー元フォルダ> <コピー先フォルダ> /MIR /NOCOPY
ただし、このコマンドは、コピー元、コピー先のフォルダ構造が同じである場合は問題ないのですが、そうでない場合は以下の点に注意が必要です。
いずれも、/MIR オプションの仕様です。
行わせたい動作が上記の通りであれば問題ないですが、コマンド実行にあたってはよくご確認ください。
フォルダの作成を行わせたくない場合、以下のコマンドで実行することが考えられます。
robocopy <コピー元フォルダ> <コピー先フォルダ> /S /PURGE /NOCOPY
/S オプションは「空のフォルダは作成しない」オプションです。/NOCOPYオプションを使うと、全てのフォルダが空のフォルダと認識されるため、新たにフォルダは作成されないことになります。
ただし、/PURGE オプションを付けているので、
これは行われますので注意してください。
RoboSync: RobocopyのためのGUIツール
本サイトで公開しているツールです。ダウンロードはこのバナーをクリック!
Version 1.3.27 をリリースしました! (2021/1/1)
RobocopyをGUIから実行できるようにするツールです。コマンドプロンプトを表示することなく、GUI画面からほぼマウス操作だけで実行までできます。
Robocopyがバックグラウンドでそのまま実行されますので設定に迷うことはありません。
・ 複数のコピー項目の作成と管理。
・ スクリプトファイル(バッチファイル)出力が可能。スケジューラによるバックグラウンド処理にも使えます。
・ Robocopyによるコピー実行前に、実行プレビュー(/L)、パラメータのチェック(/QUIT)が可能。
・ Robocopyのパラメータ設定の簡易チェック、Robocopy実行前の簡易チェックを行います。
・ Robocopy実行前後で実行するスクリプトを定義可能。
・ Robocopy実行途中での中断、実行ログの履歴管理と保存が可能。
Related Articles
管理者より個人的に返信をご希望の方は、コメント中に必ずメールアドレスを記載してください。記載がないと返信できませんのでご注意ください。
If you want personal response from the author, please do not forget to write your email address in the comment. Otherwise, the author can not reply.
投稿されたコメントは手動で処理されるため、記事として登録されるまで1日程度かかります。
Submitted comments will be processed manually. So, please understand it will take about a day to publish your comment.