HDDは必ず寿命があるので、重要なデータは複数のHDDで同期しておくのが基本ですよね。
私は昔、ひとつのHDDに保存すると、手動でもうひとつの同期用のHDDに保存するという二度手間をしていました。
今回は、バッチファイルを作成して、ダブルクリックするだけで2つのHDDを同期させる方法を記載していきます。
バッチファイルの利点
ファイルを同期させるフリーソフトがWeb上に多数公開されています。
それなのに、何故わざわざバッチファイルを使うのか?
フリーのファイル同期ソフトの多くが、コピー元のディレクトリと、コピー先のデイレクトリを指定して同期させるという仕組みのソフトです。
これだと例えば、コピー元ディレクトリにある膨大な数のフォルダから、AフォルダとBフォルダとCフォルダだけをコピー先のディレクトリに同期させたい場合、3度ディレクトリ指定して3度実行しなければなりません。
コピー元を複数指定できるソフトは無いですし、同期させる度に手動でディレクトリ設定するのも面倒です。
バッチファイルの場合、コピー元のAフォルダ用、Bフォルダ用、Cフォルダ用のコマンドを3行書いておけば、いつでもダブルクリック一発で同期させることができます。
バッチファイルを作るのは面倒ですが、面倒なのは最初だけ、一度作ってしまえば同期させる作業が楽になります。
同期させるディレクトリの準備
同期させるフォルダを準備していきます。
まず例として、
Dドライブに、Srcフォルダを作成します。(コピー元)
Eドライブに、Dstフォルダを作成します。(コピー先)
Srcフォルダの中にはファイル4個とディレクトリ1個を用意します。
Dstフォルダの中身は空っぽにしておきます。
以下のような配置です。
これから、
DドライブのSrcフォルダを、EドライブのDstフォルダに同期させていきます。
コマンドプロンプトを起動
コマンドプロンプトはWindowsシステムツール配下にあります。
右クリックして、管理者として実行してください。
コマンドプロンプトで
以下のコマンドを打ち込んでEnterキーを押すと。(「バックスラッシュ」は「¥マーク」のこと)
robocopy D:\Src E:\Dst /MIR /COPYALL
実行結果が表示されて、
ディレクトリの中身がコピーされます。
サブフォルダの”2nd”フォルダ内のファイル”D.txt”もDst側にコピーされています。
コピーされないという方は、コマンドプロンプトが管理者として実行されていますか?、コマンドの打ち間違いはありませんか?、再度チェックしてみてください。
コマンドの説明
robocopyはファイルやディレクトリをコピーするコマンドです。
このコマンドは管理者コマンドなので、コマンドプロンプトを管理者として起動しなければ使えません。
オプションの意味は、
/MIR サブディレクトリを含めてコピー
/COPYALL ファイル属性ごとコピー
DドライブのSrcディレクトリを、EドライブのDstディレクトリに同期させる場合は
となる訳です。
コピー元とコピー先で同じファイル名(ディレクトリ名)が存在した場合、
コマンドを実行すると、コピー元のファイル(ディレクトリ)で上書き保存されます。
(更新日時にかかわらず、コピー元のデータで上書き)
さらに、コピー先にしか存在しないファイルやディレクトリは消去されます。
つまり、「コピー元 → コピー先」で完全同期されます。
バッチファイルの作成
バッチファイルとは、
コマンドプロンプトで行う一連のコマンド操作をファイルに保存したものです。
バッチファイルをダブルクリックするだけで、コマンド操作を実行させることができます。
作成方法
作るのは簡単です。
テキストエディタを開いて、例として先ほどのコマンドを入力します。
ファイル名は何でもいいのですが、拡張子を「.bat」として保存してください。
ここでは例として「copy.bat」という名前でデスクトップに保存してみます。
普通、これをダブルクリックして実行させるのですが、
バッチファイルに記入した「robocopyコマンド」は管理者コマンドなので、ファイルを右クリックして「管理者として実行」をクリックします。
これだけで簡単にディレクトリの同期を行うことができます。
複数のディレクトリを選んで同期
ひとつのディレクトリを同期させるだけならフリーソフトを使う方が簡単なのですが、
複数のディレクトリを一括で同期させるのはバッチファイルが便利です。
例えば、以下のようにSrcディレクトリの中の「A-Dir」と「C-Dir」だけ、Dstディレクトリに同期させたい場合。
バッチファイルには以下のように記入して作成します。
SET SRC=D:\Src
SET DST=E:\Dst
CALL :backup \A-Dir
CALL :backup \C-Dir
exit /b
:backup
robocopy "%SRC%%*" "%DST%%*" /MIR /COPYALL
exit /b
実行させると、
バッチファイルで指定した「A-Dir」「C-Dir」だけを選んでDstフォルダに同期します。
バッチファイルの説明
SET SRC=D:\Src
SET DST=E:\Dst
CALL :backup \A-Dir
CALL :backup \C-Dir
exit /b
:backup
robocopy "%SRC%%*" "%DST%%*" /MIR /COPYALL
exit /b
1~2行目で起点となるディレクトリを指定しています。
SRCという変数にコピー元、DSTという変数にコピー先を指定。
5~6行目でコピー元ディレクトリから、さらに下の階層にある「同期させるディレクトリ」を指定。
10行目のrobocopyコマンドで同期させています。
最後に
外付けハードディスクに大事なデータを保管している人、結構いると思います。
そのハードディスクいつ壊れるか分かりませんよね。
外付けハードディスク2台に同じデータを同期して安全対策しておくと、1台が壊れてももう1台でデータは守れます。
2台のハードディスクをPCと繋いでバッチファイルを実行するだけで、追加したファイルと更新したファイルが2台目に上書きされます。
特にディレクトリが複数ある場合に便利です。
最後まで読んでいただいてありがとうございました。
スポンサーリンク |
|
|
|