訳あって大量のlzhファイルの解凍が必要になった。
Windows10ではサポートされなくなったので7-Zipを利用してPowerShellで処理するためのメモ
準備
- 7-Zipのダウンロード 7-Zip 64ビットWindows x64のEXE版(7z1806-x64.exe)を使用する
- ダウンロードしたEXEファイルを実行してインストール場所を指定してインストール
- 作業フォルダの作成(c:\work\7zip)
- lzhファイルを用意(c:\work\7zip\lzh)
基本的なコマンドラインオプションと実行例
e フォルダ構造を無視して展開
x フォルダ構造を維持して展開
-o 展開先
#インストールフォルダの中にある7z.exeを指定
& 'C:\Program Files\7-Zip\7z.exe' x -o"C:\Work\7zip" "C:\Work\7zip\lzh\comp_file.lzh"
$? #エラー判定(解凍に成功すればTrue、失敗すればFalseが返される)
7z.dllと7z.exeがあればインストールしなくても解凍が出来る模様
以下、任意のフォルダに7z.dllと7z.exeをコピーした際の実行例
cd C:\Work\7zip
.\7z.exe x -o".\" ".\lzh\comp_file.lzh"
$?
エラーが発生したファイルをログファイルに記載するサンプル
dir -Path .\lzh -Filter *.lzh | %{.\7z.exe x -o".\" $_.FullName; if($? -eq $false){$_.FullName | Out-File .\エラーファイル.log -Append }}