【Windows】フォルダを移行先にコピーする「robocopy」のバッチ作成方法

WindowsOSでフォルダ単位でデータをコピーする方法は「robocopy」コマンドを使うことが便利です。

今回は「robocopy」のコマンド例と、バッチの作成例についてまとめました。

「robocopy」Windowsでフォルダ単位でデータを移行するコマンドとバッチ作成例

Windowsでフォルダ単位でファイルをバックアップするには、コピー元とコピー先でフォルダを同期させる「robocopy」コマンドが便利です。

このrobocopyにおいて、2つのフォルダ間のデータを完全に同期させるためには「/mir」オプションを利用することをお勧めします。

「robocopy」コマンドとは

「robocopy」コマンドは、2つのフォルダの内容を同期させ、ファイルやフォルダのデータを同じ状態にする機能があります。

これにより、ファイルサーバーへのデータバックアップやリモートオフィス同士でのデータの同期など、様々な面で使用されます。

以下では、robocopyのコマンド作成例とバッチファイルの作成について紹介します。

Windows「robocopy」コマンド例

「robocopy」の基本的なコマンドは以下となります。

mkdir c:\Users\Desktop\TestFolder
robocopy #copysrc #copydst /s /e /mir /r:1 /w:1

上記コマンドは「mkdir」でコピー先に新規フォルダを作成、「robocopy」でフォルダ単位でコピー実施となります。
※コピー先に該当フォルダがない場合は新規作成します。

また、以下ではそれぞれのオプションについての説明となります。

  • /s :サブフォルダもコピー
  • /e :空フォルダもコピー
  • /mir :コピー先の内容が常にコピー元と同じになるように、必要ならファイルの削除も行う
  • /r:1 /w:1 :エラー時のリトライを抑制する。ファイル使用時などで読み出し、書き込みが一時停止する場合などを抑制する

Windows「robocopy」パッチ作成

次に複数コマンドを一度に実行するためにバッチファイルを作成します。
バッチファイルを新規に作成する場合、「cmd」の拡張子を使用します。

Windowsでは右クリック>新規作成でテキストファイルを作成し、保存する際に拡張子を変更して保存すればよいです。

以下は、コマンドプロンプトでのファイル作成例となります。

>type nul > test.cmd

バッチファイルが作成されていることを確認します。

バッチファイルが作成できれば、あとはrobocopyのコマンドを作成するだけです。
バッチファイルの中身を編集する場合は、ファイルを右クリックし、「編集」をクリックします。

「robocopy」① 通常のフォルダコピー

以下では「TestFolder」というフォルダを作成し、送信元のフォルダのデータを「TestFolder」にコピーします。

mkdir c:\Users\Desktop\TestFolder
robocopy c:\Users\Desktop\Documents c:\Users\Desktop\TestFolder /s /e /mir /r:1 /w:1

※別途ファイルサーバのフォルダにコピーする方法は「\\IPaddress」となります。

mkdir \\192.168.0.10\Users\Desktop\TestFolder
robocopy c:\Users\Desktop\Documents \\192.168.0.10\Users\Desktop\TestFolder /s /e /mir /r:1 /w:1

「robocopy」② 環境変数を使用

以下は環境変数を利用して「set」コマンドで指定のフォルダをそれぞれ、「src」と「dst」という名前にし、robocopyを行う方法となります。
複数のフォルダを作成してコピーするときなどに便利です。

set src=c:\Users\Desktop
set dst=c:\Users\Desktop\TestFolder

mkdir %dst%
robocopy %src%\Documents %dst%\Documents /s /e /mir /r:1 /w:1
robocopy %src%\Music %dst%\Music /s /e /mir /r:1 /w:1
robocopy %src%\Pictures %dst%\Pictures /s /e /mir /r:1 /w:1

「robocopy」③ ユーザープロファイルを利用

次に、ADなどで作成した、ユーザープロファイル単位で「robocopy」をしたい場合に利用する環境変数となります。

set src=%UserProfile%
set dst=c:\Users\Desktop\TestFolder
 
mkdir %dst%
robocopy %src%\Documents %dst%\Documents /s /e /mir /r:1 /w:1
robocopy %src%\Music %dst%\Music /s /e /mir /r:1 /w:1
robocopy %src%\Pictures %dst%\Pictures /s /e /mir /r:1 /w:1

Windowsの「robocopy」のコマンド例と、バッチファイルの作成例は以上となります。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!