Programming Field

Tarでzipファイルを展開・バックアップをアーカイブする - Windowsコマンド実用例

Windows 10 以降では Tar コマンドが標準で利用でき、zipファイルの作成や展開(解凍)、バックアップフォルダーのアーカイブが簡単に行えます。複数ファイルの一括圧縮や日付をファイル名に含めたバックアップ、定期実行などの応用も可能です。

使用コマンド

  • Tar - ファイルやフォルダーのアーカイブと展開
  • Set - 環境変数と日付の加工
  • If - 条件分岐処理

基本的なアーカイブと展開

1. zipファイルの作成 (バックアップ)

@echo off
setlocal
set DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

cd /d C:\Data\Project
if not exist C:\Backup mkdir C:\Backup

tar -acf C:\Backup\Project_%DATE%.zip *

2. zipファイルの展開 (復元)

@echo off
setlocal
set DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

if not exist C:\Restored mkdir C:\Restored
tar -xf C:\Backup\Project_%DATE%.zip -C C:\Restored

-acf はそれぞれ「zipでアーカイブ(-a)」「作成(-c)」「ファイル名指定(-f)」を意味します。個別に -a -c -f と書くこともできますが、Unix系ではこのように短縮形でまとめて記述するのが一般的です。-xf は「展開+ファイル指定」です。

補足事項

  • Windows の tar は bsdtar (BSD tar) ベースで、Windows に搭載されているバージョンなら標準で zip にも対応しています(追加のツールは不要)。
  • -C オプションで展開先ディレクトリを指定可能です。
  • zip以外のフォーマット(.tar, .tar.gzなど)もオプションにより使用できます。

応用例

  • 世代管理付きバックアップ:
    @echo off
    set DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
    tar -acf C:\Backup\Daily\Config_%DATE%.zip C:\Config\*

    日付付きで毎日の構成ファイルを保存し、過去の状態を残せます。

  • 複数フォルダをまとめて圧縮:
    tar -acf all_data.zip Folder1 Folder2 Folder3

    複数のディレクトリを1つの zip ファイルにまとめて保存できます。

  • 展開先の存在確認と自動作成:
    if not exist C:\Extracted mkdir C:\Extracted
    tar -xf archive.zip -C C:\Extracted

    展開前にフォルダーを確認して作成すれば、スクリプトの安定性が向上します。

  • 定期実行タスクへの登録:
    schtasks /Create /TN "DailyArchive" /TR "C:\scripts\archive_backup.bat" /SC DAILY /ST 21:00 /RL HIGHEST /F

    Schtasks /Create でのスケジュール登録により毎日決まった時間にバックアップスクリプトを自動実行できます。

関連項目