この記事に出てくる用語
- robocopy(ロボコピー) … フォルダのコピーに特化した、Windowsに最初から入っている命令。追加のインストールは要らない
- バッチファイル … 命令を書いて、ファイル名の末尾(拡張子)を .bat にしたファイル。ダブルクリックすると中の命令が実行される
- パス … フォルダやファイルの場所を表す文字列。
C:\Users\名前\Documentsのような形
結論|メモ帳の1行でバックアップは自動化できる
フォルダのバックアップは、Windowsに最初から入っている「robocopy(ロボコピー)」という命令の1行で自動化できます。
メモ帳に次の1行を貼り付けます。
robocopy "%USERPROFILE%\Documents\日報" "\\server\共有\日報控え" /E /R:1 /W:1 /LOG+:"%TEMP%\コピー記録.txt"
書き換えるのは、最初の2つの " " の中身(コピー元とコピー先)だけです。
ファイル名の末尾(拡張子)を .bat にして保存すると、ダブルクリックで動くバッチファイルになります。
2回目からは変更のあったファイルだけをコピーするので、毎日のバックアップなら短い時間で終わります。
書き換え方と、保存するときに間違えやすい2か所を、このまま手順にします。
手順|書き換えて .bat で保存するまで
1. コピー元とコピー先のパスを調べる
パスは手で打たずにコピーします。
- エクスプローラーでそのフォルダを開く
- 上部のアドレスバー(フォルダの場所が表示されている欄)の何もないところをクリックする
C:\Users\…のような文字列が選択されるので、Ctrl+Cでコピーする
コピー先が「共有ドライブ」「Zドライブ」と呼ばれる場所でも、調べ方は同じです。Z:\部内共有\日報控え のようなドライブ文字の形で出てきたら、その形のまま使えます。
自分のパソコンの中の別フォルダをコピー先にしても動きます。
2. メモ帳に貼って、2か所を書き換える
スタートメニューで「メモ帳」を検索して開き、冒頭の1行を貼り付けます。
- 1つ目の
" "の中身を、調べたコピー元のパスに置き換える - 2つ目の
" "の中身を、調べたコピー先のパスに置き換える
パスを囲んでいる "(半角の二重引用符)は消さずに残してください。
パスに空白が入っていても、1つのまとまりとして読ませるための囲いです。
例にある %USERPROFILE% と %TEMP% は、実行するときにWindowsが実際の場所へ読み替える書き方(環境変数)です。%USERPROFILE% は自分のユーザーフォルダ、%TEMP% は一時ファイル置き場を指し、書き換えずそのままで動きます。
アドレスバーで調べた実際のパスに、% ごと丸ごと置き換えても構いません。
後ろに付いているオプションの意味は次のとおりです。ここは書き換えません。
| オプション | 意味 |
|---|---|
/E | サブフォルダも含めてコピーする |
/R:1 /W:1 | 失敗したら1回だけ、1秒待って再試行する(外してはいけない理由は「つまずくところ」で) |
/LOG+: | 結果を指定したファイルに追記する |
3. 拡張子を .bat にして保存する
メモ帳で .bat にして保存する手順
- メニューの「ファイル」→「名前を付けて保存」を選ぶ
- 「ファイルの種類」を「テキスト文書 (*.txt)」から「すべてのファイル」に変える
(変えないと、名前を .bat にしても「日報コピー.bat.txt」というただのメモとして保存されます) - 保存ボタンの近くにある「文字コード」(「エンコード」と表示されることもあります)を「ANSI」に変える
(初期設定のUTF-8のままだと、パスに日本語が入っているときに正しく読まれず、エラーになることがあります) - ファイル名を「日報コピー.bat」のように、末尾を .bat にして保存する(.bat の前の名前は自由です)
コピー先のフォルダが無い場合は、robocopyが自動で作ります。先に作っておく必要はありません。
ログの出力先のフォルダは、自動では作られません。
確かめ方|コピー先に同じファイルがあれば成功
保存したファイルをダブルクリックすると黒い画面が開き、コピーが終わると自動で閉じます。
初回はファイルの量に応じて時間がかかります。
コピー先のフォルダを開き、コピー元と同じファイルが入っていれば成功です。
ファイルが増えていないときは、ログを見ます。
エクスプローラーのアドレスバーに %TEMP% と打ってEnterを押すと、一時フォルダが開きます。
その中の「コピー記録.txt」を開いてください。何がコピーされ、どこで失敗したかが記録されています。
つまずくところ
途中で止まったように見える
robocopyの初期設定は「失敗したら100万回再試行・間隔30秒」です。
誰かが開いていてコピーできないファイルが1つあると、そこで延々と再試行を続け、止まったように見えます。
例の1行の /R:1 /W:1 は、これを「1回だけ・1秒待ち」に縮める指定です。
書き写すときに外さないでください。
ログの出力先フォルダが無いと、コピーごと中止される
/LOG+: に存在しないフォルダの中のファイルを指定すると、ログが作れないだけでは済まず、コピーそのものが中止されます。
例の1行がログを %TEMP% に出しているのはこのためです。%TEMP% はWindowsが用意する一時フォルダなので、まずはここに出すのが安全です。
/MIR は使わない。コピーではなく同期
robocopyの解説でよく出てくる /MIR は、コピー元とコピー先を鏡のように一致させるオプションです。
つまり、コピー元に無いファイルをコピー先から削除します。
コピー先の指定を1か所間違えると、そのフォルダの中身が消えます。
動きを理解するまでは /E を使ってください。/MIR を試すときは、必ずテスト用の小さなフォルダで動きを確かめてから、本番のパスを書きます。
後から直すときは、ダブルクリックしない
一度作った .bat のダブルクリックは、編集ではなく実行になります。
直すときは右クリックして「メモ帳で編集」または「編集」を選んでください。
Windows 11で見当たらないときは「その他のオプションを確認」の中にあります。
保存したのに動かない・メモ帳で開いてしまう
多くは保存時の設定が原因です。
「名前を付けて保存」からやり直し、「ファイルの種類」が「すべてのファイル」、「文字コード」が「ANSI」になっているかを確かめてください。
毎日決まった時刻に動かすには
作った .bat は、Windows標準のタスクスケジューラに登録すると、決まった時刻に自動で動きます。
手順は次の記事にまとめてあります。
1つ1つのファイルを見て処理を変えたい場合は、PowerShellのほうが素直に書けます。
どの道具を選ぶかは、次の記事で整理しています。
確認範囲
- robocopyはWindowsの命令です。Macでは使えません
- 保存画面の項目名は、メモ帳のバージョンによって違うことがあります
- 操作に制限がかかった会社のパソコンは、この記事の範囲外です。制限の内容によっては、書いたとおりに動かないことがあります
- 会社のパソコンで使う場合は、勤務先の規則で禁止されていないかを先に確かめてください


コメント