lisz-works

技術系だけど関係ないこと多い系ブログ

Windowsでたった2工程で簡単な自動バックアップができる!バッチを作って設定してみた

【スポンサーリンク】

バックアップ

みなさんは仕事やプライベートで、「定期的にファイルをバックアップできたらなぁ」と思ったことはありませんか?

それがたった2工程でできます。
「バッチファイル」というものを作りますが、そこについては、コピペと簡単な編集でできますので、興味があったら見ていってください。

今回それを実現すべく、Windows10でバックアップバッチを作って、自動で実行するようタスクスケジューラ登録してみました。

ちなみにWindows10でなくてもできます。少なくともWindows7で実績があります。

作業概要

ざっくりとした作業の流れです。たいしたことはしません。
この2工程です。

  1. バックアップ用バッチファイルを作る
  2. タスクスケジューラに登録する

バッチファイルを作って、タスクスケジューラに登録してというのを詳細めに説明しているので、長く見えるかもしれませんが、実際の作業量は大したものではありません。

バックアップ用バッチファイルを作る

まずはバッチファイルを作ります。
テキストエディタを開きましょう。

そしてこちらをコピペ。

REM # 日時取得
set date_tmp=%date:/=%
set time_tmp=%time: =0%
set yyyy=%date_tmp:~0,4%
set mm=%date_tmp:~4,2%
set dd=%date_tmp:~6,2%
set hh=%time_tmp:~0,2%
set mi=%time_tmp:~3,2%
set time_tmp=
set date_tmp=

REM # パス移動
cd C:\data

REM # コピー
robocopy . .\bak hoge.txt

REM # リネーム
cd bak
rename hoge.txt hoge_%yyyy%%mm%%dd%%hh%%mi%.txt

コピペしたファイルを自分用に編集していきましょう。

コピーしたいファイルのある場所を指定する

まずこの部分をいじります。

REM # パス移動
cd C:\data

コピーしたいファイルがある場所に行ってください。
そしてアドレスバーをコピーしてください。

次に「cd D:\data」としている箇所に注目です。

cd <ここに貼り付ける>

としてください。

もし張り付けたパス(アドレス)が、「C:\」から始まらない場合は、この前に1つ追加するものがあります。

例えば「D:\」だったばあいは、「D:」を先に入れてください。こんな感じ。

D:
cd D:\data

コピーするファイルの指定

つぎはこちら

REM # コピー
robocopy . .\bak hoge.txt

この例では、コピーするファイルのあるフォルダ内の「bak」というフォルダに、バックアップ(ファイルをコピー)するようになっています。

なのでこのように編集しましょう、

robocopy . <バックアップするフォルダのアドレス(パス)> <バックアップするファイル名>

もし「全然違うフォルダにコピーを取りたいんです」という場合は、こんな感じです。

「C:\backup」というフォルダにバックアップを取るとした場合。

robocopy . C:\backup <バックアップするファイル名>

バックアップファイルをリネーム

つぎにバックアップファイルをリネーム(名前を変更)します。

定期的にバックアップを取ることを想定しているので、「[ファイル名]_[日時].[拡張子]」の形式でリネームします。

REM # リネーム
cd bak
rename hoge.txt hoge_%yyyy%%mm%%dd%%hh%%mi%.txt

3つ目の長ったらしいのが、リネーム後の名前の指定です。

ここで出てくる「%yyyy%」や「%mm%」などは、バッチファイルの先頭で取得している「現在日時」を分解したデータを適用しています。

項目 意味(2017/01/02 01:02:03.05の場合)
%yyyy% 年(2017)
%mm% 月(01)
%dd% 日(02)
%hh% 時(01)
%mi% 分(02)
%ss% 秒(03)
%ms% ミリ秒(05)

なので、例では
「hoge_%yyyy%%mm%%dd%%hh%%mi%.txt」としているので
「hoge_201701020102.txt」のようにリネームされます。

スケジューラに登録

まずスタート(Windowsロゴ)ボタンを押します。

Windows スタートボタン

そして「スケジューラ」と入力してください。

スタート画面の検索

すると「タスク スケジューラ」というのが出てくるので、選択して起動します。

検索結果 タスクスケジューラ

タスクスケジューラの右側「操作」という枠から「タスクの作成…」を選択しましょう。

タスクスケジューラ タスクの作成

するとこんなんが出てきます。

タスクの作成画面

全般タブ

まず「全般タブ」のこの2つを入力します。

項目 設定値
名前 分かりやすい名前をつけましょう
説明 簡単な説明を入れましょう(空でもOK)

こんな感じ。

全般タブ 入力イメージ

トリガータブ

次に「トリガータブ」を入力します。
ここで自動起動の設定を行います。

まず「新規ボタン」を押しましょう。

するとこのような画面が出てきます。

見てもらえばなんとなくわかると思いますが、ここで実行する条件を設定します。

今回は毎月の最終日に実行するよう設定します。

設定内容はこちら

項目 設定値
設定 毎月
<すべての月を選択>
最終

こんな感じ。

トリガータブ 入力イメージ

操作タブ

次に「操作タブ」です。
ここで実行するものを設定します。

まず「新規ボタン」を押しましょう。

操作は「プログラムの開始」のままでOKです。

「プログラム/スクリプト」に参照ボタンから、実行したいものを選択して、設定をします。
今回の場合、事前に作成していた、バックアップ用バッチファイルを選択してください。

こんな感じ。

操作タブ 入力イメージ

これで完了!

あとは、OKボタンで終了していけば完了です!

これで月末最終日に、対象のファイルが自動でバックアップされるようになります!

今回「月末最終日に実行」という風に設定しましたが、

  • 「トリガー」では日時や間隔などが自由に設定できます
  • 「操作」では、他のプログラムの自動実行や、メール送信、ポップアップでメッセージ表示なんかもできます

なので、例えば

  • 17:00になったら「さっさと帰れ!」というメッセージを表示する
  • 8:00になったら「おはよう」とメールを送る

なんてこともできます。

考えれば色々実用方法は出てくると思います。

なので「スケジュール指定で何かができる!」ということを知識の片隅に覚えておくと、Windowsがもっと便利に使えるかもしれませんよ!