Windowsではzipファイルは簡単に解凍出来ますが、 Linux環境でよく使われるtar.gzファイルの解凍は簡単には出来ません。
もちろんフリーソフトとかを入れればすぐ出来るわけですが、 ネットワークに繋がってなかったり何らかの理由で余計なものを入れられない環境で どうするか、という話。
フリーソフトの利用
とかインストールして解凍すればOK。
最近のWindowに関して
最近のWindows 10には
C:\Windows\Sytem32\tar.exe
がインストールされています。
したがって、コマンドプロンプトなりPowerShellにて
tar -xzf xxx.tar.gz
とすれば解凍できます。
何も外から入れられない場合
というわけで、Window 10にはtarコマンドがインストールされているので 殆どの場合はそれでなんとかなってしまいます。
なので、めったにこんなことは必要ないわけですが、古いWindowsサーバーで 作業する必要があったりする場合、役に立つ、かもしれません。、
が、ちょっと必要な時があって調べたのでメモ。
実はC#を使うと結構簡潔(?)に展開することができます。
これをコンパイルして使えばよいわけですが、これを PowerShellでwarpして簡単に実行できる様にした人がいました。
Native TAR File Extraction with PowerShell – .The Dot Source
Expand-TarBall/Expand-TarBall.ps1 at main · TheDotSource/Expand-TarBall
さっと使いたいだけならこれが非常に便利。
Expand-TarBall.ps1の内容を適当にコピペして スクリプトの最後に
Expand-TarBall example.tar.gz -outputFolder example
とか追加していて実行してあげればOK。
GZipの解凍まで
GZipだけであればもっと単純にPowerShellだけでも書ける様です。
Download and extract gzip tar with PowerShell » Scattered Code
これらでも最終的にtarを展開していますが、その際に 7Zip4Powershell というパッケージをインストールしていて、これはサードパーティーで外部からインストールしないと いけないのでここで考えている環境だとうまくいきません。
ただ、普通にネットワークが繋がっていて、 tar.exeがないけどどうしてもPowerShellでtar.gzファイルを扱いたい、 ということがある場合には覚えておくと役に立つかもしれません。