これまでに下記の記事でZipファイルを作成する方法を紹介しました。
- PowerShell で DotNetZip を使用する
- PowerShell で DotNetZip を使用する ~ファイル名に日本語が含まれる場合の対応~
- PowerShell で DotNetZip を使用する ~自己解凍形式ファイルの作成~
今回は、Zipファイルを解凍する関数を作ってみたので紹介します。
[void][System.Reflection.Assembly]::LoadFrom("c:\work\Ionic.Zip.dll") function Unpack-Zip([string]$TargetFile, [string]$TargetDir) { $zipfile = new-object Ionic.Zip.ZipFile #解凍するファイルの読み込み $zip = [Ionic.Zip.ZipFile]::Read($TargetFile) if ($TargetDir.Length -eq 0) { $TargetDir = Split-Path $TargetFile -Parent } $zip | %{$_.Extract($TargetDir, [Ionic.Zip.ExtractExistingFileAction]::OverWriteSilently)} Write-Host "解凍が完了しました!!" }
Ionic.Zip.dllの使用方法については、過去記事を参照ください。
ZipファイルはExtractメソッドで行っています。
Extractメソッドの引数にOverWriteSilentlyを渡しているので、ファイルが既存する場合には上書きされます。
この関数の書式は
Unpack-Zip 解凍するファイルのパス [解凍先ディレクトリ]
です。
解凍先ディレクトリは省略することができ、省略した場合はZipファイルがあるディレクトリに解凍されます。
コメント