2017/05/04

robocopy コマンドに関する雑記

データのコピーなどに使用できるコマンド robocopy に関する雑記

robocopyコマンドは、特定のファイルを選んでコピーするときなどになどに使える
windows標準搭載の便利なコマンドです。
このrobocopyコマンド、オプションが実にたくさんあるのでその中から使いそうなものだけ
まとめてみました。


公式のドキュメント
  • 前提 使用例はすべて下記のコピー元パスから、コピー先パスに移動することにします。
    • コピー元パス C:\test\A




    • コピー先パス C:\test\B

  • 使用例1 基本
    サンプルコマンド1
    robocopy C:\test\A C:\test\B *.*
    実行後のコピー先パス C:\test\B


    コピー先パス C:\test\B に TestData1.txt~TestData4.txt,TestData5bmp がコピーされました。

  • 使用例2 ファイルの指定
    ファイルのコピーをするとき拡張子であったり、ファイル名で選択してコピーしたくなることがあります。
    サンプルでは、.txtファイルだけ選んでコピーしてみます。
    サンプルコマンド2
    robocopy C:\test\A C:\test\B *.txt
    実行後のコピー先パス C:\test\B

    コピー先パス C:\test\B に TestData1.txt~TestData4.txt がコピーされました。
    コマンドで *.txt と指定したので、TestData5.bmpは該当しないのでコピーされません。

  • 使用例3 コピー元とコピー先を完全に一致させる
    コピーを何度も繰り返すとき、コピー元の内容をコピー先に完全にコピーしたいことがあります。
    たとえば、コピー元のファイルのTestData2.txt,TestData3.txtを消してみてサンプルコマンド1を実行します。
    実行後のコピー先パス C:\test\B
    コピー先の内容が変わりません。?!
    コピー先はTestData2.txt、TestData3.txt、TestData5.bmpだけになってほしいのに!
    そんなときは「/MIR」オプションを使います。

    サンプルコマンド3
    robocopy C:\test\A C:\test\B *.* /MIR

    C:\test\A と C:\test\B が完全に一致しました。やったね!


  • 使用例4 古いファイルはコピーさせない コピー先の内容を書き換えてしまったので、コピー元の内容で上書きさせたくない!なんてことがあったりします。
    それでは一旦 C:\test\B のファイルを書き換えてタイムスタンプを進めておきましょう
    TestData4.txtのタイムスタンプが、2017/05/04 14:51 に進んでいます。
    ここでサンプルコマンド1を実行すると、タイムスタンプが2017/05/04 12:50に戻ってしまいます。なんてこった!
    そんな時は「/XO」オプションを使います。
    コピー先のほうが新しいときはコピーをスキップするオプションです。
    サンプルコマンド4
    robocopy C:\test\A C:\test\B *.* /XO
    実行後のコピー先パス C:\test\B
    タイムスタンプが変わらないままになっています。
    これでOKです。
よく使うようなオプションだけ書いてみました。

私のWindows環境では、適当にダウンロードしてたまってきたファイルをまとめて外部ドライブにまとめてコピーするときなんかに使っています。

参考になれば・・・。

0 件のコメント:

コメントを投稿

AWSに手を出してフレームワークも使ってみたが・・・。

サイトを作り直しました。 AWS上に構築した Content created by AXY を作り直しました。 具体的にはbottle.pyを使ったpythonで構築したサイトからPHP7を使用したサイトに再構築しています。 特別何か問題点があったというわけで...