今回はファイル圧縮を自動化するバッチについて作成していきます。
コマンドプロンプトではファイル圧縮の操作は標準搭載されておりません。
そのため、今回は別のソフトを使い、ファイル圧縮を行っていきます。
ファイル圧縮に使用するソフトは「7-zip」というソフトのコマンドライン版を
ダウンロードします。
7-zipはオープンソースのフリーソフトであり、導入の敷居が低いため採用させていただきました。
まずはこちらからダウンロードします。
その後、実際にバッチを作成していきます。
set ZIP_PATH="C:\Users\thiruma\Desktop\7-Zip\7z.exe"
set base_dir1="C:\Users\thiruma\Desktop\bk\bk_201906"
set base_dir2="C:\Users\thiruma\Desktop\bk\bk_201906\*.xlsx"
下準備として
1.「7-zip」のパスを「ZIP_PATH」として定義します。(「7-zip」の拡張子は「.exe」です。)
2. 圧縮されたファイルの出力先を「base_dir1」として定義します。
3.圧縮元のファイルを「base_dir2」とします。(ファイルは「bk_201906」配下の「.xlsx
」フォルダを対象としています。)
メインとなる処理は以下のとおりです。
%ZIP_PATH% a -r -tzip -sdel %base_dir1% %base_dir2%
「ZIP_PATH」を入力し、「7-zip」を起動します。
そして「base_dir1」に「base_dir2」の内容を圧縮しします。
7-zipのオプションについても説明していきます。
「a」→圧縮
「-r」→対象のフォルダ以下を全て圧縮する
「-sdel」→圧縮元のファイルを削除する。
となっております。
では、実際にバッチを起動してみます。
実行前は「20190619進捗報告書」~「20190625進捗報告書」が格納されています。
バッチ実行後は・・・
圧縮ファイルが作成されたのが確認できました。
また、圧縮元のフォルダを確認すると・・・
ファイルが削除されたのが確認できました。
「バッチ作成(ファイルを指定したディレクトリにコピー)」で紹介したバッチを組み合わせてバックアップを作成→圧縮というルーティンにするのもおススメです。
■バッチ作成(ファイルを指定したディレクトリにコピー
https://www.miraclejob.com/recommend/detail?cd=668
今回もご覧いただき、ありがとうございました。
■参考元
https://kiwamiden.com/how-to-make-a-batch-that-creates-zip-for-each-folder
https://memo.morelents.com/7zip-batch/
https://onlinepckan.net/tool/sevenzipcommandtechnique.html