コマンドプロンプト

XCOPYでフォルダ除外するならRobocopyの方がおススメ

XCOPYでフォルダの除外ができない!

XCOPYしたときにコピーしたくないフォルダを除外しようとしたのですが、

エラーメッセージが出たり、

やり方が面倒だったので、

robocopyを使った方が良いよ。

という話です。

やりたかったこと

やりたかったのは、バックアップしたいフォルダと同列にbackupフォルダを作り、XCOPYコマンドを実行すると、backupフォルダへ退避させる

ということがしたかったです。

なので、コピー元のbackupフォルダは除外しなければならなのですが・・・

XCOPYだとこれができませんでした。。

backupフォルダを除外しても

『サイクリックコピーは実行できません。』

エラーがでました。

サイクリックコピーは実行できません。

のエラーについては別記事で紹介しています。

robocopyのフォルダ除外の方法

Robocopyでのフォルダ除外の方法を照会します。

フォルダ除外には/xdオプションを使います。

例えば、

  • コピー元:D:\勤務表
  • コピー先:D:\勤務表\backup

として、コピー元配下の(backupファイルを除く)すべてのファイルとサブフォルダをコピー先にコピーします。

よって、これを実現したい場合は、以下のコマンドになります。

Robocopy D:\勤務表 D:\勤務表\backup /S /xd backup

コマンド補足

/Sは

コピー元フォルダのサブフォルダ、ファイルをすべてコピーする

というオプションです。

かつ、先ほど紹介した/xdオプションでバックアップフォルダを除外しています。

XCOPYの使いどころ?

robocopyを知ってしまえば、不要なのかもしれません。

XCOPYとRobocopyを比較した記事もあります。

XCOPYよりRobocopyの方が新しい技術ですし、用途も似ているので

Robocopy圧勝に見えます。。。

エンジニア中級者への道

XCOPYよりRobocopyの方が新しい技術です。

日々、技術が進化していき、

昔は便利だったコマンドも、新しいコマンドに代わっていきます。

そのためにはコマンドに限らず

仕様を一瞬で把握する能力

が大事だと思いました。

では

コマンドの仕様を把握するためにはどうすればよいか?

それは、そのまま仕様を暗記するのではなく、

その機能(コマンド)を使用する目的を明確にする

ということだと思います。

今回の例で言えば、

  • コピーがしたいのか?
  • バックアップがとりたいのか?
  • フォルダを除外する必要はあるのか?
  • そもそもバックアップとる必要あるのか?

などということをもう一回立ち止まって考えることだと思います。

そうすると、仕様を把握しやすくなると思います。

また、

あれ?この目的だと作らなくてもスクリプト作らなくても良いかも・・

なんてこともあるかもしれません。

エンジニアの現場でもこのような人はかなり重宝されますし、上流のエンジニアとして単価が高い印象があります。

広告




関連記事