作 ▸
Windows 10でコマンドラインからzipファイルを解凍
- コマンドプロンプト (cmd.exe) にはzip解凍のコマンドが無い。
- PowerShellの
Expand-Archive
コマンドを使う。
もくじ
基本
PowerShellの Expand-Archive
でzipを解凍できるから、コマンドプロンプトからPowerShellを call
すれば、実質コマンドプロンプトで解凍できる……。
以下のコマンドを実行すると、カレントフォルダに myzip
フォルダが作成され、その中に myzip.zip
を解凍した中身が置かれる。
call powershell -command "Expand-Archive myzip.zip"
PowerShell側のカレントフォルダはコマンドプロンプト側と同じになるから、ファイルパスは現在の場所からの相対指定が可能。
解凍先フォルダを指定
以下のようにフォルダ名を指定することもできる。こちらの場合、カレントフォルダに piyopiyo
フォルダが作成され、その中に zipfile.zip
を解凍した中身が置かれる。
call powershell -command "Expand-Archive zipfile.zip piyopiyo"
解凍先フォルダが存在しても上書き
ここまでのコマンドだと、カレントフォルダに解凍先のフォルダがすでに存在する場合はエラーになる。
エラーにしたくない場合は下記のように -Force
を付与する。
call powershell -command "Expand-Archive -Force zipfile.zip piyopiyo"
ただし -Force
をつけても既存のフォルダを消して再作成するわけではないので、よけいなファイルが解凍先のフォルダに存在したら残ってしまうのは留意。
使い方の例
コマンドプロンプトでWindows用のNode.jsランタイム (v14.15.4) をカレントフォルダにダウンロードして解凍し、C:\path\to\dev\node
に移動させ、ゴミも片付ける例。
curl --silent https://nodejs.org/dist/v14.15.4/node-v14.15.4-win-x64.zip --output node-v14.15.4-win-x64.zip
call powershell -command "Expand-Archive node-v14.15.4-win-x64.zip"
del node-v14.15.4-win-x64.zip /Q
move node-v14.15.4-win-x64\node-v14.15.4-win-x64 C:\path\to\dev\node
rmdir node-v14.15.4-win-x64 /Q
(最近のWindowsは標準で curl
がつかえるよ)