PowerShellでzipファイルを解凍する

  • 18
    Like
  • 0
    Comment
More than 1 year has passed since last update.

ところで、PowerShell v5 からは zip ファイルの操作が可能になったらしいので、可能ならば v5 を入れて操作した方が安全そうです。

使い方を紹介しているブログがありましたので、参考までに

PowerShell v5 の新機能紹介 - Zipファイルの操作が可能に

PowerShellのコマンドラインからzipファイルを解凍したかったので$PROFILEに関数を追加しました。
特別な外部ライブラリを使わずにエクスプローラーのzipファイルアクセス機能を利用しています。

function psunzip {
   #エクスプローラーのオブジェクトを作成する
   $Expcom = New-Object -ComObject Shell.Application

   #第一引数のzipファイルパスを登録
   $zipFile = $Expcom.NameSpace($args[0])

   #第二引数の出力先ディレクトリパスを登録
   $tgtDir = $Expcom.NameSpace($args[1])

   #zipファイル内のオブジェクト(ファイル)一覧を取得してForEach-Objectに渡す
   $zipFile.Items() | ForEach-Object {

      #ファイルを一つずつ出力先ディレクトリにコピー
      $tgtDir.CopyHere($_.path)
   }
}

$PROFILEを編集して再読込をした後に下記のようなコマンドを叩くとzipファイルをコピーできます。

> psunzip %ZIPファイルパス% %出力先ディレクトリパス%

どちらのパスもフルパスでしか試したことはありません。