Help us understand the problem. What is going on with this article?

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

More than 5 years have 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ファイルパス% %出力先ディレクトリパス%

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

kmr_hryk
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away