★★ Windowsに関する記事です ★★
バッチファイルとタスクスケジューラによるデータのバックアップの紹介です。
前回の記事はその①として、バックアップを行う為のバッチファイルの作成まででした。
この記事では、その続きの②として、タスクスケジューラを使って、バッチファイルを指定の時刻に起動させて、自動バックアップを行います。
この記事の内容は、①の記事に基づいて、データフォルダの準備とバッチファイルの作成が終わっている前提となります。
また、スクリーンショット等は Windows11の画面ですが、Windows10でもほとんど同じ操作が可能です。
⬇️『バッチファイルとタスクスケジューラによるデータバックアップ手法 ①』
タスクスケジューラの設定
タスクの新規作成
「タスクスケジューラ」を起動します。
Windowsの画面下のタスクバーにある「検索ボックス」に「タスクスケジューラ」と入力します。⬇️
タスクスケジューラが起動しました。右上にある「基本タスクの作成」を選びます。⬇️
「基本タスクの作成ウィザード」が起動するので、任意の「名前」と「説明」を入力します。(お好きな名前と説明でかまいません)
「次へ」を選びます。⬇️
毎日、毎週など、どれかを選びます。
今回はこまめにバックアップをとるために「毎日」にしておきます。
「次へ」を選びます。⬇️
バッチファイルを起動する、開始時刻を選びます。
この例では 18:30 としています。(任意の時刻にしてください)
(最初に試す時には、現在時刻の少し未来の時刻を設定してテストをすると良いと思います)
「次へ」を選びます。⬇️
「プログラムの開始」を選びます。
「次へ」を選びます。⬇️
「プログラム/スクリプト」の右側にある、
「参照」ボタンを押し、前の記事(バッチファイルとタスクスケジューラによるバックアップ手法①)で作成したバッチファイルを探して選択します。(この例では Dドライブのルートにある "BackUpD2EZ.bat")
「次へ」を選びます。⬇️
これで、必要な情報は設定されました。
「要約」画面が表示されるので、入力した情報を確認します。
入力ミス等の問題が無ければ、「完了」を選びます。⬇️
「タスクスケジューラ」のメイン画面に戻ります。
左にある「タスクスケジューラ ライブラリ」を選ぶとタスク一覧が表示されます。先ほど作成したタスクを探してみると、
"BackUp DtoE Z" が「毎日 18:30に起動」となっています。⬇️
念のために、「条件」を選んで、
「タスクを実行するためにスリープを解除する」にも、チェックを入れておいた方が良いと思います。
またノートPCをお使いの方は、その上にある電源関係のチェックを必要に応じて選択してください。(バッテリー駆動中にバックアップを開始するかどうかです)
設定が終わったら「OK」を選びます。⬇️
これで、設定は終了です。
「タスクスケジューラ」を終了して、起動時刻が来るのを待ちましょう。(何回やっても、時計を眺めながら結構ドキドキします😆)
タスクの実行
設定に問題が無ければ、設定した時刻になると、バッチファイルが起動します。
今回の例では、毎日18:30になると
D:\サバdata から
E:\サバdata
Z:\サバdata
にファイルのコピーが行われます。
下記のスクリーンショットでは、設定どおりのコピーが行われています。
(設定時刻になると、突然コマンドプロンプトの黒い画面が現れ、ファイルのコピー画面が流れていきます。初めてだとかなりインパクトがあると思います😀)⬇️
終了後、Eドライブ、Zドライブを開いてコピーがされているか確認してみてください。
応用例
今回の例としては、
D:\サバdata フォルダを
E:\サバdata
Z:\サバdata
にバックアップする例について書きましたが、
実際には、この記事のように 4つのドライブを持っている方がレアな例かもしれません。
ですが、2つ以上のドライブがあれば、この記事のようなバックアップ方法は可能です。
(robocopy コマンドのオプションは、大文字でも小文字でも構いません。それぞれの間のスペースは必要です。また、必ず半角スペースにしてください)
Cドライブから Dドライブへ
例えば、Cドライブと Dドライブという 2つのドライブで使用している場合を考えてみます。
Cドライブにある "MyData" フォルダ を、Dドライブの "MyData" フォルダに追記する形(コピー元のファイルを削除しても、コピー先のファイルは削除されない)でコピーするとしたら
バッチファイルの中身は以下のようになります。
------- この下の行からコピー -------
robocopy c:\MyData d:\MyData /E /FFT /XO /XA:SH /R:0 /W:0 /NP
pause
------- この上の行までコピー -------
ミラーリングするなら
追記ではなく、ミラーリング(コピー元のファイルを削除したら、コピー先のファイルも削除される)の形でコピーするなら、
/E のオプションを /MIR に変更します。
------- この下の行からコピー -------
robocopy c:\MyData d:\MyData /MIR /FFT /XO /XA:SH /R:0 /W:0 /NP
pause
------- この上の行までコピー -------
保存先のフォルダ名が異なっていても大丈夫
バックアップ元と、保存先のフォルダ名が異なっていてもかまいません。
Cドライブにある "MyData" フォルダを、Dドライブの "保存用データ" フォルダにコピーするとしたら、バッチファイルの中身は以下のようになります。
------- この下の行からコピー -------
robocopy c:\MyData d:\保存用データ /E /FFT /XO /XA:SH /R:0 /W:0 /NP
pause
------- この上の行までコピー -------
補足
この記事で、バッチファイルやタスクスケジューラに興味を持たれた方もいらっしゃるかもしれません。
参考として、エド105 (id:ED105)氏のブログに、バッチファイルやタスクスケジューラの活用法についての記事があります。
PC起動時にWebサイトを自動的に開いたり、特定の日時にアプリや X を起動したりする例が示されているので、こちらも参考になると思います。
私も、タスクスケジューラからブラウザの特定のページを開くことができるとは知りませんでした。
例えば毎日決まった時刻にブラウザの "chrome" を起動して、このブログ「サバのトランク」のトップページを開くというタスクを設定する場合は、タスクスケジューラの「操作の編集」の部分はこうなります。
⬆️赤線で囲まれた部分がプログラム(chrome)の場所(フルパス Full Path)ですが、最後の部分が少しだけ表示されていません。通常のインストールをしているとしたら、下記のようになっているはずです(「参照」から下記のフォルダを次々とたどっていっても入力できます)。⬇️
(”” ダブルクォーテーションは必要です。また、区切り記号の ¥ と \ は「文字コード」の違いです。同じと考えてもらって大丈夫です)
"C:\Program Files\Google\Chrome\Application\chrome.exe"
青線で囲まれた部分が「サバのトランク」のURLです。
タスクスケジューラのその他の設定は、この記事の内容を参照して起動時刻等を指定してみてください。
まとめ
バッチファイルとタスクスケジューラを使って、自動でデータのバックアップをとるという記事を書いてきました。
コマンドプロンプトを使った事がない方は、バッチファイルは勝手にコマンドが動いてしまって「恐い」と感じられるかもしれません。
タスクスケジューラは、うまく使いこなせば色々な可能性があると思いますが、こちらも初めて使う時にはちょっと緊張してしまうかもしれません。
そういうわけで、記事にはしましたが、コンピュータにあまり詳しくない方にはややハードルが高かったかもしれません。
ただし、バックアップは必要だと思います。一部の機能を無料で使える市販のバックアップソフトもたくさんあるようなので、それらを利用するのが良いと思います。
または、データはすべてクラウドに上げてしまうというのが、今はもっともスマートなやり方かもしれませんね。
「記事③」では、ログファイルの残し方を解説しています。⬇️
「記事④」では、補足説明と、英語モードを使って出力の整列を行います。⬇️