貧乏暇だらけ

筋トレとサプリのブログ

複数のzipファイルをまとめて解凍(すべて展開)する方法【Windowsの標準機能だけで出来ます】

やりたいこと

f:id:aresta9:20191023193453p:plain

↑複数のzipファイルがある時

f:id:aresta9:20191023193517p:plain

↑一発でまとめて解凍したい(実は複数選択で「すべて展開」は出来ない)

この記事のポイント
  • 複数のzip形式の圧縮ファイルを一括でその場に解凍する
  • Windowsの標準機能だけを使うので、外部ツールのインストールは不要
  • コピペで使える
  • 右クリックメニューに追加できる

複数のZIPファイルをまとめて解凍するバッチ

調べたところ、どうやら「zipを解凍するコマンド」というものはWindowsに存在しないようです。(マウス操作ならできるのに)

この点については、PowerShellにある「expand-archive」というコマンドレット*1を使えば解凍できました。

ただ、個人的にPowerShellを直接触るのが好きじゃないので、今回はコマンドプロンプト経由でPowerShellを呼ぶということをやります。

バッチファイルにまとめたので、コピペで使えます。

また、「すべて展開」と同様の操作感を実現したいので、コンテキストメニュー(右クリックメニュー)に追加する方法もあわせて紹介します。

バッチファイル全文

@echo off
:loop
if "%~1" == "" goto end
if "%~x1" == ".zip" (powershell expand-archive %1 %~p1%~n1 -Force)
shift
goto loop
:end

使い方
  1. 上記コードをテキストエディタにコピペして保存
  2. 拡張子を.batに変える
  3. shell:sendto」に置く
  4. zipファイルを右クリック > 送る > batファイル名

※ちなみに、zipファイルをbatファイルにドラッグ&ドロップしても動きます ⇨ 使い方は前回の記事を参照

 

f:id:aresta9:20191023194554p:plain

3.エクスプローラーで開いても良いし、「Win + R」からも行けます。

 

f:id:aresta9:20191023194820p:plain

4.PC再起動しなくても置いた瞬間に反映されるっぽいです。
 注意点
  • ファイル名にスペースがあると上手く動きません。
  • PowerShellのバージョン5.0以上が必要です。(Windows10ならプリインストールされていますが、Windows7だとバージョンアップが必要かも)
  • zipの中身だけその場に解凍したいなら4行目の「%~n1」を消すと良いです。
  • 解凍後に同名のファイルがあれば問答無用で上書きします(-Forceオプション)

*1:PowerShellではコマンドのことをコマンドレットと呼ぶ。コマンドプロンプトで使えるコマンドと区別するために呼び分けている、らしい。