PowerShellで
・ファイル/フォルダをZIP圧縮(パスワード付き)
できます!
PowerShellから
・圧縮解凍ソフト「7-Zip」を実行
することで実現できます!
7-Zipのインストール
詳細は以下の記事の「7-Zipのインストール」をご確認ください。
コード
ここでは例として
・デスクトップ配下の約1GBのフォルダ「test」を
・パスワード「hogehoge」で圧縮し
・デスクトップ配下に圧縮ファイル「test.zip」として作成
します。
# 7z.exeのパスを指定
$exe7zip = "C:\Program Files\7-Zip\7z.exe"
# 圧縮するフォルダ(またはファイル)のパスを指定
$targetPath = "C:\Users\user\Desktop\test"
# 作成するZIPファイルのパスを指定
$zipFilePath = "C:\Users\user\Desktop\test.zip"
# パスワードを指定
$password = "hogehoge"
# 7z.exeを実行する際の引数を組み立て
$arg=" a -ssw -p" + $password + " " + $zipFilePath + " " + $targetPath
$ws = New-Object -ComObject Wscript.Shell
try
{
# 7z.exe(圧縮)を実行
Start-Process -FilePath $exe7zip -ArgumentList $arg -Wait -WindowStyle Hidden
$ws.popup("圧縮しました。")
}
catch
{
$ws.popup("エラー : " + $PSItem)
}
実行結果
ZIP形式(パスワード付き)で圧縮できました。
指定したパスワードで解凍(展開)できることを確認
「作成された圧縮ファイル」を右クリックして「すべて展開」をクリックしてパスワードを入力し「展開」をクリックすると、無事に解凍(展開)できました。
※上記に記載の通りパスワードは「hogehoge」です。
参考①
PowerShellでZIPファイル(パスワード付き)を解凍(展開)することもできます。
詳細は以下の記事をご確認ください。
参考②
7-Zipを使用した圧縮コマンドの詳細は、公式サイトをご確認ください。
参考③
上記のコードで使用した以下の詳細は、公式サイトをご確認ください。
●「Start-Process」コマンドレット