この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象OS:Windows 7/Windows 8/Windows 8.1/Windows 10/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2/Windows Server 2016
■記事内目次
2つのフォルダの内容を同期させ、ファイルやフォルダの内容を同じ状態に保つ機能は、ファイルサーバのバックアップや個人的なデータのバックアップ、リモートオフィス同士でのデータの同期など、システム管理のさまざまな場面で利用される。
このような用途に利用できるコマンドとして、copyやxcopyコマンドがある。
フォルダの同期に利用できるツールとしては、この他にも「robocopy.exe」というコマンドラインツールがある。
robocopyは、もともとはリモートのファイルサーバ同士でファイルやフォルダ、ユーザープロファイルデータなどを同期させるために作られたコマンドである。その名前は「Robust File Copy」の略であり、堅固(robust)で確実なファイルコピーという意味を持つ。具体的な機能の例を以下に記す。
このようにrobocopyは多くの機能を備えている。本TIPSではrobocopyの基本的な使い方として、2つのフォルダを同期させる機能と、ログや設定を保存する機能について解説しておく。それ以外の機能については次のTIPS記事を参照していただきたい。
より高度なrobocopyの使い方については、今後別TIPSで紹介する。
robocopyコマンドの使い方やオプションは、コマンドプロンプトで「robocopy /?」を実行すると表示される。
robocopyでは、copyやxcopyコマンドのように、引数としてコピー元とコピー先、オプションなどを指定する。
コピー元もコピー先もフォルダであり(ファイル名やワイルドカードは指定不可)、指定されたフォルダ間で、その中にあるファイルがコピーされる。コピー先として指定されているフォルダが存在しない場合は、フォルダが新規作成され、その中へコピーされる。
コピー元やコピー先には、ローカルのフォルダだけでなく(例:c:\srcfolder)、UNCによるリモートのサーバ上の共有フォルダも指定できる(例:\\server1\drivec\destfolder)。
ただしデフォルトではサブフォルダはコピーされず、さらに次の種類のファイルだけが上書きでコピーされる。
xcopyコマンドに/dオプションを付けると更新されたファイルだけをコピーするが(TIPS「xcopyでファイルをバックアップする」参照)、robocopyではコピー元の方が古くてもコピーされるなど、少し挙動が異なる。
どのような種類のファイルをコピーするかは、ファイルの「クラス」に基づいて決まる。クラスとは例えば、日付が新しいか古いか、サイズが異なるか、属性が異なるか、などの状態のことを指す。どのクラスに該当するファイルをコピーするかはオプションで指定できる。詳細なオプションについては以下のTIPSを参照していただきたい。
実際に利用する例を次に示す。
robocopyをオプション指定なしで実行すると、デフォルトでは「*.*」、つまり全てのファイルがコピーの対象となる。オプションとしてファイルのパターンを指定すると、そのパターンに合うファイルのみがコピーの対象となる。例えばJPG/JPEG画像ファイルだけをコピーするには、次のようワイルドカード指定を追加する(パターンは複数指定可能)。
※2つのフォルダ間でJPG/JPEGファイルをコピーする例
robocopy c:\src d:\dest *.jpg *.jpeg
robocopyに何もオプションを付けないと、指定されたフォルダ中にあるファイルだけがコピーの対象となる。これをサブフォルダも含めて全部コピー(上書き更新)するには「/s」オプションを付ける。ただし/sだけでは、空のフォルダはコピーされない。空フォルダも含めてサブフォルダをコピーするには「/e」(/s /eでも同じ)を付けて実行する。これらのオプション名はxcopyコマンドと同じである。
実行すると次のようになる。
続きを読むには、[続きを読む] ボタンを押して会員登録あるいはログインしてください。
Copyright© Digital Advantage Corp. All Rights Reserved.
この記事に関連する製品/サービスを比較(キーマンズネット)
Windows Server Insider 記事ランキング
編集部からのお知らせ