Blogブログ

Robocopyを使ってみた件

こんにちは。先日、自宅の古いPC(Win7)のデータを色々と眺めてノスタルジィに浸っていた筑紫です。

購入してからおそらく干支が一周したであろうPC。SSDに換装済みとはいえ、そろそろデータをきちんとバックアップしたい欲求が沸々と湧きはじめ、、

思い立ったが吉日、NASを設置してデータのバックアップを試みました。

しかしながら、目の前に立ちはだかるのは学生時代から現在に至るまでの膨大なデータの数々。

ちまちま一つずつコピーしてたら日が暮れますし、かといって大量のデータを一度にコピーしても、だいたい何かしらエラーが出て中断します。その度にいちいちやり直すのも精神衛生上よろしくありませんよね。

そんな時にご紹介したいコマンドがこちら、「Robocopy」です!

私はこれを使うようになって、すごく快適にファイルコピーができて、心に余裕も生まれ身長も伸びました。

ごめんなさい、少し盛りました。身長は変わってません。

Robocopyとは

Robocopyとは、ざっくり言うとWindows(正確にはVista以降)に標準搭載されている、ファイルのコピーや同期をおこなうコマンドです。

ロボコピー?ロボなの?と思いがちですが、robotではなくrobust(堅牢な)、「Robust File Copy」の略だそうです。ロボチガウ ロボチガウ

Robocopyには環境に応じた様々なオプションを指定することができるので、大量のファイルをより高速にコピーすることができます。

基本的な使い方

使い方としては、まずコマンドプロンプトを立ち上げ、、

以下の形式でコマンドを入力し、実行します。

robocopy コピー元 コピー先 [ファイル] [オプション]
コピー元 …コピー元のフォルダ名
コピー先 …コピー先のフォルダ名 ※ディレクトリがない場合は自動作成される
ファイル …コピーするファイル/フォルダ名 ※既定値は”*.*” 複数指定可能
オプション …いろいろあるよ

例えば、Cドライブにhogeフォルダあったとして

この中にあるテキストファイル(.txt)だけを、fugaフォルダにコピーしたい!という場合は

robocopy C:¥hoge C:fuga *.txt /E /R:3 /W:10

と、こんな感じで実行します。

ちなみにオプションを3つ指定していますがそれぞれ下記のような内容になっています。

/E …空のサブディレクトリもコピーする
/R:3 …再試行の回数(この場合は3回)
/W:10 …再試行の間隔(この場合は10秒)

で、実行結果がこちら↓


バッチリですね。

他にもオプションは膨大にあるので紹介しきれませんが、差分だけコピーしたりミラーリングをおこなったりなど、色々細かい設定が可能です。

バッチファイルにしてしまえば、スケジューラに登録して自動で定期バックアップも取れますね。便利。

コマンドラインなので、エンジニアはともかく一般的にはとっつきにくいかもしれませんが、そんな時は”Robocopy ツール”等でググってみるのもありだと思います。

それでは、また!

筑紫

執筆者

Developer

筑紫