7zipコマンドライン&バッチファイル


7zipでコマンドライン版を活用したい

毎日発生する定常作業(圧縮/解凍等)を簡潔に行いたい。

  1. 外部部署とのDVD媒体を用いてデータの受け渡し
  2. 解凍作業
  3. 解凍先指定
  4. 作業時、一時的にCOPYした圧縮ファイルは削除したい

こんな風にしたい

【As-Is】
1ファイル毎にせこせこと解凍作業を行っている。

  • 外部部署とのDVD媒体を用いてデータの受け渡し
  • 解凍作業
  • 解凍先指定あり
  • 作業時、一時的にCOPYした圧縮ファイルは削除したい

【To-Be】
バッチファイルを利用し、シンプルな方法で処理したい。

  • 1クリック or D&Dで処理

Archive

圧縮してみる
対象ファイルを下記バッチファイルへD&D

Command Description
a add
archive.bat
@echo off
Set path="C:Program Files\7-Zip\"
Set exe=7z.exe
Set pass="PASSWORD"
Set out="C:\temp1\test\"
FOR %%f IN (%*) DO (
 %path%%exe% a -p%pass% %%~dpf%%~nf.7z %%f
rem %path%%exeFile% a -r -p%pass% %%~dpf%%~nf.7z 
rem >>> -r ディレクトリ以下サブも対象
rem %path%%exeFile% a -p%pass% %%~dpf%%~nf.7z 
rem >>> 圧縮先しか指定していない。元対象ファイルの指定がない場合はカレントディレクトリ以下サブも含む対象
)

Extract

解凍してみる

Command Description
e extract
x extract with full path
extract.bat
@echo off
Set path="C:Program Files\7-Zip\"
Set exe=7z.exe
Set pass="PASSWORD"
Set out="C:\temp1\test\"
FOR %%f IN (%*) DO (
 %path%%exe% x -p%pass% %%f -aoa -o%out%
)

番外編(ついでに・・・)

ファイル整合性確認用に

hash

ハッシュ値計算

Switch Description
-scrc Set hash function

-scrc{methods}
対応しているmethods: CRC32, CRC64, SHA1, SHA256, BLAKE2sp, *
methodsを指定しなければCRC32で計算される。

hash.bat
7z.exe h -scrcsha1 hoge.txt

参考リンク

7zip Command Line Commands

7zip Command Line Switches