![](https://kuzira-blog.com/wp-content/uploads/2024/04/Eye-catch-1024x538.jpg)
![](https://www14.a8.net/0.gif?a8mat=3Z9I5C+8P61QY+52XK+BW8O2)
この記事では、バッチファイルを使ってデータバックアップを自動化する方法について説明します。
バッチファイルってなんだか難しそう!って思うかもしれませんが、実はバッチファイルは簡単に誰でも作れます。
プログラミングの知識は全くいりませんの興味のある方は、最後まで読んでみてください。
いきなりですが、最初にしっかりとお伝えしないといけないことがあります。
ここで紹介するバッチファイルは、使い方を間違うと逆にデータを失う可能性があります!
ここで紹介するバッチファイルの使用に起因するいかなる損害/損失も当ブログは負うことはできませんので、バッチファイルの使用は必ず自己責任で行ってください。
以上のことをご理解いただける場合にのみ、この記事をお読みいただければと思います。
少し不安にさせるようなことを記載しましたが、しっかりと内容を理解して使用していただければ、ここで紹介するバッチファイルはとても便利なものです。
この記事で紹介するバッチファイルは、これ以後、「バックアップ用バッチファイル」と呼びます。
目次
バックアップ用バッチファイルの実行例
まず初めにバックアップ用バッチファイルを実行した場合のデータの挙動について説明します。
今回紹介するバッチファイルを使用すると、バックアップ元として指定したフォルダ内のデータが、バックアップ先に指定したフォルダ内に自動でコピーされます。
イメージとしては、以下のイラストのようになります。
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/1-8-1024x501.png)
以下では、バックアップ用バッチファイルを実行した場合のデータの挙動を、さまざまな例を用いて示します。
以下では、さまざまな例を示しますが、
大切なことは、バックアップ用バッチファイルの実行後は、バックアップ元フォルダの内容と、バックアップ先フォルダの内容は、完全に同じになるということです(これをミラーリングといいます)
さらに理解すべきポイントは、バックアップ元フォルダの内容が常に基準になり、バックアップ先フォルダの内容がどのようなものであれ、バックアップ先フォルダ内容は、バックアップ元フォルダと同じになるように変更されるということです。
言い換えれば、バックアップ先フォルダの内容がどのように変更されていても関係なく(空っぽであろうと、新しいファイルがあろうと関係なく)、バックアップ用バッチファイルを実行すれば、バックアップ元フォルダの内容によってバックアップ先フォルダの内容が書き換えられて、最終的に両者の内容は同じになるということです。
これらのことを踏まえて、以下の実行例を見てみて下さい。
実行例1
・バックアップ元フォルダにファイルを追加した後にバックアップ用バッチファイルを実行した場合
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/2-6-1024x485.png)
バックアップ元フォルダに新たに追加したファイルがバックアップ先フォルダにコピーされます。
実行例2
・バックアップ元フォルダ内のファイルを更新した後にバックアップ用バッチファイルを実行した場合
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/3-8-1024x488.png)
バックアップ元フォルダ内の更新ファイルがバックアップ先フォルダ内に上書きコピーされます。
実行例3(注意すべき例)
・バックアップ元フォルダ内のファイルを削除した後にバックアップ用バッチファイルを実行した場合
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/4-7-1024x474.png)
バックアップ先フォルダ内の対応ファイルが削除されます。
実行例4(注意すべき例)
・バックアップ元フォルダ内のフォルダ(サブフォルダ)を削除した後にバックアップ用バッチファイルを実行した場合
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/5-5-1024x485.png)
バックアップ先フォルダ内の対応するフォルダとその中のファイルが削除されます。
実行例5(特に注意すべき例)
・バックアップ先フォルダ内のファイルを更新した後にバックアップ用バッチファイルを実行した場合
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/6-4-1024x534.png)
バックアップ先フォルダ内の更新ファイルは、バックアップ元フォルダ内の古い対応ファイルによって上書きされてしまいます。
(常にバックアップ元フォルダが基準になります)
バックアップ先のファイルを編集して更新することは避けるべきです。
実行例6
・バックアップ先フォルダ内のファイルを削除した後にバックアップ用バッチファイルを実行した場合
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/7-3-1024x450.png)
バックアップ元フォルダ内の対応ファイルがバックアップ先フォルダにコピーされます。
実行例7(最も注意すべき例)
・バックアップ元フォルダ内のファイルが破損した後にバックアップ用バッチファイルを実行してしまった場合
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/8-3-1024x489.png)
バックアップ元フォルダ内のファイルが何らかの原因で破損した場合(例えば、ワードファイルが編集中に壊れて開けなくなった場合)、この状態でバックアップ用バッチファイルを実行してしまうと、破損ファイルがバックアップ先フォルダに上書きコピーされてしまいます。
これは、最も注意すべき例です。
これでは何のためにバックアップをとっていたのか分かりません。
バックアップ元フォルダ内のデータが破損した場合、バックアップ用バッチファイルは絶対に実行せずに、バックアップ先フォルダの破損前の対応ファイルを手動でバックアップ元フォルダにコピーしてくるなどの、状況に応じた適切な対応をしてください。
このような場合に万一バックアップ用バッチファイルを実行してしまっても最悪のケースが避けられるような運用方法案については次の説明をご参照ください。
バックアップ用バッチファイルの運用方法案
バックアップ用バッチファイルの運用方法案を1つ示させていただきます。
例えば、バックアップ元フォルダ内の同じワードファイルを開いて日々編集作業を行っていたとします。
常に同じワードファイルを日々開いて編集しながら、時折バックアップ用バッチファイルを実行するような運用をしていた場合、上記の運用例7のようなことが起こり得ます。
これを避けるためには、1日のうちの数時間おき、または1日に1回、編集中のワードファイルをバックアップ元フォルダ内の別のフォルダ(この例では、「バックアップフォルダ」とします)内にコピーして別ファイルとしておくことが良いと思います。
イラストで示すと以下のような状態です。
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/9-2-1024x460.png)
上のイラストの例は、編集中ファイルをバックアップフォルダ内に1日に1回コピーする運用の例です。
このような運用をしていれば、編集中のファイルが破損した時にうっかりバックアップ用バッチファイルを実行してバックアップ先フォルダ内の対応ファイルを破損ファイルで上書きしてしまっても、1日前のファイルがありますので、最悪1日前の状態には戻ることができます。
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/10-1-1024x564.png)
もし、それでも心配な方は、1日に数回、適当な時点でコピーファイルをバックアップフォルダに入れておけばいいと思います。
また、別のリスクパターンとして、そもそもパソコン自体が壊れてしまう場合もありますが、そのような場合でも、バックアップ元のフォルダをパソコン内のフォルダに指定し、バックアップ先のフォルダをUSBメモリ内のフォルダに指定して運用していれば、以下のイラストのようにUSBメモリ内のフォルダからデータを救出できます。
![バッチファイルによるミラーリング例](https://kuzira-blog.com/wp-content/uploads/2024/03/11-2-1024x586.png)
また、1つのUSBメモリだけでは不安だ!という方は、以下の2つの運用パターンでバックアップ先を2つにすることもできます。
運用パターン①:1つのバックアップ用ファイルで2つのUSBメモリにバックアップをとる
![バッチファイルの運用例](https://kuzira-blog.com/wp-content/uploads/2024/03/12-1024x623.png)
運用パターン②:2つのバックアップ用ファイルで2つのUSBメモリにバックアップをとる
![バッチファイルの運用例](https://kuzira-blog.com/wp-content/uploads/2024/03/13-1024x630.png)
さらに、イラストでは示しませんが、3つ以上のバックアップ先(USBメモリや外付けSSD/HDDなど)を指定することも可能です。
バックアップ用バッチファイルの作成
以下のステップでバックアップ用バッチファイルを簡単に作成することができます(プログラミングの知識はいりません。通常のファイル操作です)。
ステップ① Win + R を押します
![キーボード上の「Win」キーと「R」キーの位置](https://kuzira-blog.com/wp-content/uploads/2024/03/14-3.png)
以下のイラストのようなダイアログボックスが画面の左下に開きます
![「ファイル名を指定して実行」ダイアログボックス](https://kuzira-blog.com/wp-content/uploads/2024/03/15-3.png)
ステップ② 半角で「notepad」と入力してから、エンターキーを押します
![「ファイル名を指定して実行」ダイアログボックス](https://kuzira-blog.com/wp-content/uploads/2024/03/15-1-1.png)
以下のイラストのようにメモ帳が立ち上がます。
![メモ帳を開いた画面](https://kuzira-blog.com/wp-content/uploads/2024/03/15-2-2.png)
ステップ③ 「ファイル」→「ファイル名を付けて保存」を選択します
![テキストファイルの保存操作](https://kuzira-blog.com/wp-content/uploads/2024/03/15-3-2.png)
ステップ④ 以下の手順でファイルを保存します
1.ファイルの種類を「すべてのファイル (*.*)」にします。
2.ファイル名をバックアップ.batにします (名前は何でもかまいません。末尾は必ず半角で「.bat」としてください)
3.エンコードをANSIにします
![バッチファイルとしての保存](https://kuzira-blog.com/wp-content/uploads/2024/03/15-4.png)
以上の1~3を行った後で、「保存」ボタンを押して保存します(この例では、デスクトップに保存しています)。
ここで一旦、タブの×印(以下のイラストの赤で囲った部分)を押してファイルを閉じてしまいましょう。
![ファイルを閉じる操作](https://kuzira-blog.com/wp-content/uploads/2024/03/15-5.png)
これで空のバッチファイルを作成することができました。
以下のようなアイコンのファイルができます。
パソコンの設定によっては、「バックアップ.bat」が、単に「バックアップ」というファイル名になっていると思いますが、問題ありません(余談になりますが、「.bat」の部分は、拡張子と呼ばれます)
![バッチファイルのアイコン](https://kuzira-blog.com/wp-content/uploads/2024/03/0.png)
ここで一端ファイルを保存したのは、バッチファイルを新たに編集する方法もここで知っていただける方が有効だと考えたためです。
以下のステップに進んで、バッチファイルを編集してください。
ステップ⑤ 「バックアップ.bat」の上で右クリックして「メモ帳で編集」を選択します
![バッチファイルの編集操作](https://kuzira-blog.com/wp-content/uploads/2024/03/17.png)
「メモ帳で編集」が一覧にない場合は、「その他のオプションを確認」を選択し、表示されたメニューから「編集」を選んでください。
![バッチファイルの編集操作](https://kuzira-blog.com/wp-content/uploads/2024/03/18.png)
![バッチファイルの編集操作](https://kuzira-blog.com/wp-content/uploads/2024/03/19.png)
メモ帳が開いて以下の状態になります(編集は他のテキスト編集アプリで行ってもかまいません)。
![メモ帳でのバッチファイルの編集](https://kuzira-blog.com/wp-content/uploads/2024/03/20.png)
ステップ⑥ 以下のコードをステップ③で開いたメモ帳にコピーし、メモ帳を開いたままにしておきます
@ECHO OFF
robocopy <バックアップ元フォルダ> <バックアップ先フォルダ> /MIR /DCOPY:DAT
If "%ERRORLEVEL%" geq "8" (
ECHO.
ECHO.
ECHO **********************************
ECHO *****バックアップに失敗しました*****
ECHO **********************************
ECHO.
ECHO エラーレベル"%ERRORLEVEL%"
ECHO.
PAUSE
) else (
ECHO.
ECHO.
ECHO ****************************************
ECHO *****バックアップが正常に終了しました*****
ECHO ****************************************
ECHO.
ECHO.
)
ステップ⑦ 「バックアップ元フォルダ」に指定したいフォルダを作成します(場所も名前も任意ですが、名前は必ず半角アルファベットにしてください)。
(このフォルダ名を半角アルファベットにする理由は、文字化けによってバッチファイルが動かないリスクを排除するためです。フォルダ内に入れる各自のファイルやサブフォルダは日本語名でもかいません)
フォルダの作成は、好きな場所で右クリックして、「新規作成」→「フォルダー」で行うことができます。
今回の例では、デスクトップに「backupmoto」という名前のフォルダを作成します。
![フォルダアイコン](https://kuzira-blog.com/wp-content/uploads/2024/03/20.5.png)
ステップ⑧ 「バックアップ元フォルダ」に指定したフォルダ(名前は半角アルファベット)を開いて、フォルダ名(以下の例では「backupmoto」)の上で右クリックし、「アドレスをテキストとしてコピー」を選択(左クリック)します。
以下の例は、デスクトップに作成した「backupmoto」という名前のフォルダをバックアップ元に指定する場合のものです。
「アドレスをテキストとしてコピー」を選択すると、「backupmoto」のアドレスがクリップボードにコピーされます。
![バックアップ元フォルダを開いた画面](https://kuzira-blog.com/wp-content/uploads/2024/03/21-1.png)
上のイラストに示したアドレスコピー法の代替として、アドレスの空白部分(下のイラストで赤丸で囲った部分)をクリックしてもかまいません(Windowsのバージョンによってはこちらのやり方しかできないかもしれません。その場合は、以後に登場するアドレスコピーステップでは、この方法を行ってください)。
![](https://kuzira-blog.com/wp-content/uploads/2024/04/21-1.png)
上のイラストのように空白部分(赤丸部分)をクリックすると、以下のイラストのようにアドレスが表示されるので、右クリックしてコピーしてください。
![](https://kuzira-blog.com/wp-content/uploads/2024/04/21-2.png)
ステップ⑨ 先ほどメモ帳に張り付けたコードの中の<バックアップ元フォルダ>の部分を選択してから右クリックし、「貼り付け」を選択します
![メモ帳での編集画面](https://kuzira-blog.com/wp-content/uploads/2024/03/22-1.png)
以下のイラストのような状態になります。
(UsersとDesktopの間の部分は、各自のユーザー名が入ります)
![メモ帳での編集画面](https://kuzira-blog.com/wp-content/uploads/2024/03/23-2.png)
ステップ⑩ 「バックアップ先フォルダ」に指定したいフォルダを作成します(場所も名前も任意ですが、名前は必ず半角アルファベットにしてください)。
フォルダの作成は、好きな場所で右クリックして、「新規作成」→「フォルダー」で行うことができます。
今回の例では、USBメモリ内に「backupsaki」という名前のフォルダを作成します。
![フォルダアイコン](https://kuzira-blog.com/wp-content/uploads/2024/03/23.5.png)
ステップ⑪ 「バックアップ先フォルダ」に指定したフォルダ(名前は半角アルファベット)を開いて、フォルダ名(以下の例では「backupsaki」)の上で右クリックし、「アドレスをテキストとしてコピー」を選択(左クリック)します。
以下の例は、USBメモリ内に作成した「backupsaki」という名前のフォルダをバックアップ先に指定する場合のものです。
「アドレスをテキストとしてコピー」を選択すると、「backupsaki」のアドレスがクリップボードにコピーされます。
![バックアップ先フォルダを開いた画面](https://kuzira-blog.com/wp-content/uploads/2024/03/24-1.png)
ステップ⑫ 先ほどメモ帳に張り付けたコードの中の<バックアップ先フォルダ>の部分を選択してから右クリックし、「貼り付け」を選択します
![バッチファイル編集画面](https://kuzira-blog.com/wp-content/uploads/2024/03/25-1.png)
以下のイラストのような状態になります。
![バッチファイル編集画面](https://kuzira-blog.com/wp-content/uploads/2024/03/26-2.png)
ステップ⑬ バックアップ用バッチファイルを上書き保存します
(「ファイル」→「保存」を選択します)
![バッチファイル保存操作](https://kuzira-blog.com/wp-content/uploads/2024/03/27-1.png)
ステップ⑭ バックアップ用バッチファイルを閉じます
![バッチファイルを閉じる操作](https://kuzira-blog.com/wp-content/uploads/2024/03/28-2.png)
以上でバックアップ用バッチファイルは完成です!
以下は、バックアップ先フォルダを2つ作りたい人のみ行ってください。
前述した運用パターン①(1つのバックアップ用バッチファイルで2つのバックアップ先フォルダにバックアップをとる)を行いたい人
1.上記のステップ⑤の手順で既存のバックアップ用バッチファイルを開き、そこに以下のコードを追加します
robocopy <バックアップ元フォルダ> <バックアップ先フォルダ> /MIR /DCOPY:DAT
以下のイラストのような状態にしてください。
![バッチファイル編集画面](https://kuzira-blog.com/wp-content/uploads/2024/03/29-2.png)
2.新たに追記したコード中の<バックアップ元フォルダ>の部分に、既にコード中で指定されているバックアップ元フォルダのアドレスをコピペします(上の例では、「C:¥Users¥(この部分はユーザーごとに異なります)¥Desktop¥backupmoto」の部分をコピペします)。
つまり、以下のイラストのようにします。
![バッチファイル編集画面](https://kuzira-blog.com/wp-content/uploads/2024/03/29-1-1.png)
3.上述のステップ⑩~⑭を行って、新しくコピーしたコードの<バックアップ先フォルダ>の部分を編集してください。
その際、追記したコード中の<バックアップ先フォルダ>には、既存コード中のバックアップ先フォルダのアドレスとは別の、お好きなバックアップ先フォルダのアドレス(例えば、別のUSBメモリ内のフォルダのアドレス)にしてください。
以上で完成です。
これで、1つのファイルを実行するだけで、別々の2つのバックアップ先フォルダへと1つのバックアップ元フォルダの内容がバックアップ(ミラーリング)されます。
前述した運用パターン②(2つのバックアップ用バッチファイルで2つのバックアップ先フォルダにバックアップをとる)を行いたい人
再度、上述のステップ①~⑭を行って、もう1つ別のバックアップ用バッチファイルを新たに作成してください。
その際、新たなファイルのコード中の<バックアップ元フォルダ>は、最初に作った別ファイルのコード中で指定されているバックアップ元フォルダのアドレスと同じにしてください(上の例では、「C:¥Users¥(この部分はユーザーごとに異なります)¥Desktop¥backupmoto」にします)。
お好きなタイミングをそれら2つのバッチファイルを実行してバックアップをとってください。
バックアップ用バッチファイルの動作確認
バックアップ用バッチファイルが作成できたら、実際の大切なデータのバックアップに使用する前に、意図したとおりに動くかどうかを、以下の手順でテストしてみましょう。
1.バックアップ元フォルダに指定したフォルダを開きます
以下の例では、デスクトップの「backupmoto」を開いています。
![バックアップ元フォルダを開いた画面](https://kuzira-blog.com/wp-content/uploads/2024/03/30-1.png)
2.右クリックしてテキストファイルを選択して空のテキストファイルを作ります
単にバックアップのテストをしたいだけなので、テキストファイル以外の種類のファイルでもかいません。
![テキストファイルの作成](https://kuzira-blog.com/wp-content/uploads/2024/03/31-1.png)
以下の状態になります
![作成されたテキストファイル](https://kuzira-blog.com/wp-content/uploads/2024/03/32-1.png)
3.先ほど作成した「バックアップ.bat」をダブルクリックして実行します。
![バッチファイルのアイコン](https://kuzira-blog.com/wp-content/uploads/2024/03/33.png)
一瞬、黒いウィンドウが開いて瞬時に閉じると思います(これが正常な動作です)。
(バックアップ用バッチファイルは、どのフォルダに置いてあってもかまいません。
もちろんショートカットを作って実行してもかまいません)
4.バックアップ先フォルダに指定したフォルダを開きます
この例では、「backupsaki」を開いています。
以下のイラストのように、先ほどバックアップ元フォルダ(今回の例では、「backupmoto」)に入れた「新規 テキスト ドキュメント.txt」がバックアップ先フォルダ(今回の例では、「backupsaki」)にコピーされていれば、バックアップ用バッチファイルは正しく作成されています。
![バックアップ先フォルダにコピーされたテキストファイル](https://kuzira-blog.com/wp-content/uploads/2024/03/34-1.png)
もし仮に、バックアップ用バッチファイルの実行後に、「新規 テキスト ドキュメント.txt」がバックアップ先フォルダにコピーされず、代わりにバックアップ元フォルダにあるはずの「新規 テキスト ドキュメント.txt」が消失した場合は、バッチファイル中でバックアップ元フォルダとバックアップ先フォルダとを逆に指定してしまっていますので、再度指定が正しいかを確認してください。そのまま実際に使用すると、最悪の結果を招きます。
以上で、バックアップ用バッチファイルの動作確認は終了です。
今回テストに使用した「新規 テキスト ドキュメント.txt」は不要なファイルですので、バックアップ元のフォルダから消しておいてください。消去後に、バックアップ.batを実行すると、バックアップ先のファイルも自動で消えることを確認してみてもいいと思います。
これで説明はすべて終了です。
あとは、ご自身のデータをバックアップ元フォルダ内に入れて、必要なタイミングでバックアップ.batを実行してください。
本バッチファイルの使用に際しては、前述の実行例1~7などの説明をすべてお読みいただき、本バッチファイルの動きを十分にご理解いただき、ご自身の大切なデータを失うことがないようにしていただければと存じます。
このバックアップ用バッチファイルは、正しくお使いいただく分には非常に有用なものだと思いますので、是非ご愛用いただければと思います。
エラーが起きた場合の対処方法
エラーが起きた場合は、バッチファイルの実行画面(黒い画面)が閉じずにエラーレベルが表示されます。
この画面は内容確認後に閉じていただいてかいません。
エラーが出る場面というのは、多くの場合、「バックアップ先フォルダが認識できない」(例えば、USBメモリがパソコンに接続されていない)や、バックアップ先フォルダ内のファイルが使用中(開いたまま)でコピーできないなどの場合ですので、対応(USBメモリを接続する、ファイルと閉じるなど)後に再度、バッチファイルを実行してみてください。
どうしてもエラーが続く場合は、パソコンを再起動後にバッチファイルを再実行してみてください。
注意点
ここまでお読みいただいた時点で、読者の方は十分にご理解されていると思いますが、今回紹介したバッチファイルは、バックアップ元フォルダの内容に基づいてバックアップ先フォルダの内容を変更して、バックアップ先フォルダの内容とバックアップ元フォルダの内容を同じにするものです。
そのため、両フォルダの内容は、バッチファイル実行後は同じになっており、バックアップ元フォルダ内のファイルだと思って編集していたが、実は、バックアップ先フォルダ内のファイルだったということが起こり得ます。その状態でバッチファイルを実行してしまうと、せっかく編集したファイルが、古いファイルに置き換わってしまいますので、くれぐれもバックアップ元フォルダとバックアップ先フォルダを間違えないように注意してください!
バックアップ先フォルダ内のフォルダやファイルを編集することは推奨されません。
バックアップ先フォルダ内のフォルダやファイルはあくまでバックアップ物ですので、非常時にのみお使いください。
![](https://www14.a8.net/0.gif?a8mat=3Z9I5C+8P61QY+52XK+BW8O2)
以下は、興味のある人だけお読みください。
バッチファイル中の記載の意味
今回紹介したバックアップ用バッチファイルの記載について簡単に説明をします。
![バッチファイルの中身](https://kuzira-blog.com/wp-content/uploads/2024/03/35.png)
@ECHO OFF
→実行コマンド表示させないためのコマンドです。
ECHO
→メッセージを表示させるためのコマンドです
ECHO.
空行を表示するためコマンドです。
robocopy <バックアップ元フォルダ> <バックアップ先フォルダ> /MIR /DCOPY:DAT
→<バックアップ元フォルダ>の内容を<バックアップ先フォルダ>にミラーリング(同期)するためのコマンドです。
If "%ERRORLEVEL%" geq "8" (...) else (...)
→エラーが起きた際(エラーレベルが8以上の場合)にエラーレベルを表示します。
PAUSE
→一旦停止します
最後まで読んでいただきましてありがとうございました!
![](https://www14.a8.net/0.gif?a8mat=3Z9I5C+8P61QY+52XK+BW8O2)