PowerShell パスワード付きZIPを解凍する【自動化】
PowerShellでスクリプトを書いたときパスワード付きZIPを扱うことがあると思います。PowerShell標準機能でZIPの解凍ができますがパスワード付きZIPだと解凍できません。スクリプトが止まってしまいます。その場合の解決方法のメモです。
パスワード付きZIP解凍にはLhaplusを使う
コマンドラインで圧縮解凍ができるLhaplusを使えばパスワード付きZIPの解凍ができます。
普通のZIPファイルを解凍する例はこう
#c:\temp\zzzz.zipをc:\test\へ解凍します
Start-Process -FilePath "C:\Program Files (x86)\Lhaplus\Lhaplus.exe" -ArgumentList 'c:\temp\zzzz.zip /o:c:\test\'
パスワード付きZIPを解凍するときも上の例と同じようなコマンドで解凍できるがパスワード入力画面が出てきてしまう。
そこでキー入力をPowerShellで行って解決します。
例:パスワードが12345678の場合
Start-Process -FilePath "C:\Program Files (x86)\Lhaplus\Lhaplus.exe" -ArgumentList 'c:\temp\zzzz.zip /o:c:\test\'
add-type -AssemblyName System.Windows.Forms
Start-Sleep -m 500
[System.Windows.Forms.SendKeys]::SendWait("12345678")
Start-Sleep -m 500
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
SendWaitでキー入力してパスワードを打ち込んできます。
そのほかの記事:
パスワード付きZIPで圧縮する場合
普通のZIP圧縮解凍
#PowerShell #プログラミング学習 #プログラミング入門 #コマンドレット #圧縮解凍 #パスワード付きZIP #自動化 #業務自動化 #毎日投稿