MENU

重要なファイルを日付付きでバックアップするバッチファイルの作成方法

はじめに

ファイルのバックアップは、重要なデータを守るために欠かせない作業です。たとえば、パソコン全体をバックアップする場合は、Windowsに標準搭載されているバックアップ機能を利用します。また、特定のファイルだけをバックアップしたい場合には、クラウドストレージサービスを活用する方法があります。個人で使用しているパソコンでは比較的自由にこれらの方法を利用できますが、業務システムが稼働しているサーバー上のファイルをバックアップしたい場合には、いくつかの課題が生じることがあります。

たとえば、サーバーの設定を変更すると業務システムに影響を与える可能性があったり、クラウドストレージサービスを利用する場合には有料プランを導入する必要があり、そのための稟議を通すことが難しいケースも少なくありません。

こうした状況でおすすめしたいのが、サーバーの設定を変更せずに利用でき、かつ費用もかからない「バッチファイル」の活用です。本記事では、業務で使用する特定のファイルを日次や月次といったタイミングで自動的に保存するバッチファイルの作成方法をご紹介します。

手動でバックアップを取るのは手間がかかるだけでなく、うっかり忘れてしまうリスクもあります。そこで、バックアップ作業を自動化することで、作業負担を軽減し、バックアップ漏れを防ぎます。また、業務で使用する場合を想定し、誰が見ても分かりやすい形で必要なファイルを迅速に復元できるよう、バックアップファイルに日付を付ける方法についても分かりやすく解説します。

1. 日付付きバックアップを作成するバッチファイルの作り方

1.1 システム日付を取得する方法

まず、バッチファイルで日付を取得する方法を紹介します。バッチファイルでは、システム日付を利用して日付情報を取得します。システム日付は、現在のコンピューターの日付情報を表しており、%date% を使用することで簡単に取得できます。この情報を活用して、バックアップファイルの名称に年、月、日を追加することが可能です。

1.1.1 システム日付とは?

システム日付とは、コンピューターの内部時計で管理されている現在の日付のことを指します。これは、Windowsが提供する標準機能で、タスクスケジューラのスケジュール設定やファイルの作成日時の記録など、さまざまな場面で利用されます。

1.1.2 システム日付を取得するコード
@echo off

:: 「%date%」から切り出した年月日をそれぞれ変数に代入
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%

:: 確認用の出力
echo システム日付: %date%
echo 年: %year%
echo 月: %month%
echo 日: %day%

pause

実行結果

実行結果

1.1.3 システム日付を取得するコードの補足
  • %date% のフォーマットについて

    • %date% はシステム日付を文字列として取得します。
    • 取得される日付の形式は、使用しているコンピューターの地域と言語の設定に依存します。たとえば、日本では通常、yyyy/MM/dd(例:2025/01/10)の形式で表示されますが、設定によっては異なる場合があります。
  • %date:~X,Y% の意味

    • ~X,Y は文字列操作の構文で、X 番目の文字から Y 文字分を取得します。
    • 例: set year=%date:~0,4% では、日付文字列の先頭4文字(年部分)を取得します。1文字目は1からではなく、0からカウントすることに注意してください。
1.2 バックアップファイルの作成とファイル名に日付を追加する方法

バックアップファイルは copy コマンドを使用して作成します。

1.2.1 copy コマンドとは?

copy コマンドは、Windowsコマンドプロンプトで使用されるファイル操作コマンドの一つで、指定されたファイルを別の場所にコピーするために利用されます。以下は基本的な使用方法とその特徴です。

copy [コピー元ファイルパス] [コピー先ファイルパス]
  • コピー元ファイルパス: コピーする元のファイルを指定します。
  • コピー先ファイルパス: コピー先のファイル名またはディレクトリを指定します。
1.2.2 バックアップファイルを作成するコード
@echo off

:: 日付の取得
set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%

:: バックアップ元とバックアップ先の設定
set source=C:\ImportantFiles\example.txt
set destination=C:\Backup\backup_%yyyy%%mm%%dd%.txt

:: バックアップ実行
copy "%source%" "%destination%"
echo Backup completed: %destination%
pause

実行前:バックアップ対象のファイル

実行前:バックアップ対象のファイル

実行前:バックアップファイル未作成

実行前:バックアップファイル未作成

実行結果

実行結果

実行後:バックアップファイルが作成される

実行後:バックアップファイルが作成される

1.2.3 バックアップファイルを作成するコードの補足
  • コピー元ファイルが存在しない場合はエラーになります。
  • コピー先のファイルが既に存在する場合は、警告なしで上書きされます。

2. タスクスケジューラを利用して自動化する方法

作成したバッチファイルをWindowsのタスクスケジューラに登録すれば、バックアップ作業を完全に自動化できます。これにより、日次、週次、月次など、任意の間隔でバックアップを実行できます。以下に、タスクスケジューラでバッチファイルを登録する手順を説明します。

2.1. タスクスケジューラを開く
  1. スタートメニューを開き、検索バーに「タスクスケジューラ」と入力します。
  2. 検索結果に表示された「タスクスケジューラ」をクリックして起動します。
2.2. 基本タスクの作成
  1. タスクスケジューラの「操作」タブをクリックし、「基本タスクの作成」を選択します。
  2. 「基本タスクの作成ウィザード」が表示されるので、タスクの名前と説明を入力します。(例:「日次バックアップ」)
  3. 入力後、「次へ」をクリックします。
2.3. トリガー(実行タイミング)の設定
  1. 「タスクトリガー」で、実行間隔を選択します。
    • 日次(毎日)
    • 週次(毎週)
    • 月次(毎月)
    • その他(例:ログオン時やPC起動時)
  2. 選択後、「次へ」をクリックし、具体的な実行時間や頻度を設定します。
2.4. 操作(アクション)の設定
  1. 「操作」で「プログラムの開始」を選択し、「次へ」をクリックします。
  2. 「プログラム/スクリプト」に、作成したバッチファイルのパスを入力します。
    • 例: C:\Backup\backup.bat
2.5. 設定を確認
  1. 設定内容を確認し、「完了」をクリックします。
  2. タスクスケジューラのメイン画面に戻り、登録したタスクが一覧に表示されていれば成功です。
2.6. 動作確認
  1. 登録したタスクを右クリックし、「実行」を選択します。
  2. タスクが正常に動作し、バックアップファイルが作成されることを確認してください。
2.7. タスクの編集や削除
  • 設定内容を変更したい場合は、タスクを右クリックして「プロパティ」を選択し、各設定を変更できます。
  • 不要になったタスクは、右クリックで「削除」を選択すれば削除できます。

まとめ

バッチファイルを活用して、特定のファイルを日付付きのファイル名でバックアップする方法について解説しました。この方法にタスクスケジューラを組み合わせることで、バックアップ作業を完全に自動化し、作業効率の向上と重要なデータの保護を実現できます。
本記事で紹介した方法は特定のファイルを対象としていますが、任意のファイルやフォルダーを指定できるようカスタマイズすることも可能です。こんな条件でバックアップできませんか?など、コメントいただければ考えてみますのでお気軽にコメントください。

こちらもおすすめの記事です。ぜひチェックしてみてください!

■バッチに詳しくなりたい方におすすめの記事■