PowerShellは、Windows環境でファイル操作を効率的に行うためのツールです。
本記事では、PowerShellを使ってzipファイルを解凍する方法を、コード例とともにまとめます。
Expand-Archiveコマンドレットの利用
PowerShellには、zipファイルを操作するためのコマンドレット Expand-Archive
が標準で用意されています。
このコマンドレットは、zipファイルを簡単に解凍するための最も一般的な方法です。
使用例
# 解凍するzipファイルのパス
$zipFilePath = "C:\Temp\example.zip"
# 解凍先のディレクトリ
$destinationPath = "C:\Temp\Extracted"
# zipファイルを解凍
Expand-Archive -Path $zipFilePath -DestinationPath $destinationPath
ポイント
-Path
に解凍するzipファイルのパスを指定します。-DestinationPath
に解凍先のディレクトリを指定します。- 解凍先のディレクトリが存在しない場合は、自動的に作成されます。
注意点
既存のファイルを上書きする場合、-Force
オプションを追加してください。
Expand-Archive -Path $zipFilePath -DestinationPath $destinationPath -Force
.NETライブラリの利用
PowerShell 3.0以前のバージョンや、Expand-Archive
が使用できない環境では、.NETのSystem.IO.Compression
名前空間を利用してzipファイルを解凍することも可能です。
使用例
Add-Type -AssemblyName System.IO.Compression.FileSystem
# 解凍するzipファイルのパス
$zipFilePath = "C:\Temp\example.zip"
# 解凍先のディレクトリ
$destinationPath = "C:\Temp\Extracted"
# 解凍処理
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipFilePath, $destinationPath)
ポイント
.NET
ライブラリを使用するために、最初にAdd-Type
コマンドでライブラリを読み込む必要があります。ExtractToDirectory
メソッドを使って解凍を実行します。
注意点
ExtractToDirectory
メソッドは、解凍先ディレクトリが存在しないとエラーになるため、事前にディレクトリを作成する必要があります。
# 解凍先ディレクトリを作成
if (!(Test-Path -Path $destinationPath)) {
New-Item -ItemType Directory -Path $destinationPath
}
サードパーティツールの利用
PowerShellから7-Zipなどのサードパーティツールを呼び出してzipファイルを解凍する方法もあります。
この方法は、より複雑な圧縮形式にも対応可能です。
必要な手順
- 7-Zipをインストールします。
- PowerShellから7-Zipのコマンドラインツールを呼び出します。
使用例
# 7-Zipのパス
$sevenZipPath = "C:\Program Files\7-Zip\7z.exe"
# 解凍するzipファイルのパス
$zipFilePath = "C:\Temp\example.zip"
# 解凍先のディレクトリ
$destinationPath = "C:\Temp\Extracted"
# 7-Zipを使用して解凍
& $sevenZipPath x $zipFilePath -o$destinationPath -y
ポイント
-o
オプションで解凍先ディレクトリを指定します。-y
オプションで確認メッセージをスキップして自動で解凍します。
まとめ
PowerShellでzipファイルを解凍する方法は主に以下の3つです。
Expand-Archive
コマンドレットを使用(最も簡単で標準的)。- .NETライブラリを使用(カスタマイズ性が高い)。
- サードパーティツール(複雑な圧縮形式に対応)。
状況に応じて最適な方法を選択してください。特に、Windows環境であればExpand-Archive
を使うのが最も簡単です。