やりたいこと
1.上図のように複数のzipファイルがある時
2.一発でまとめて解凍したい(実は複数のファイルを選択した状態で「すべて展開」はできない)
この記事のポイント
- 複数のzip形式の圧縮ファイルを一括でその場に解凍する
- Windowsの標準機能だけを使うので、外部ツールのインストールは不要
- コピペで使える
- 右クリックメニューに追加できる
複数のZIPファイルをまとめて解凍するバッチ(コピペでOK)
Windowsには、マウスとキーボードで画面上から操作をするだけでなく、専用の処理コマンドを入力することでPCに複雑な処理をさせるという機能があります。
一連の処理コマンドはbatファイル(バッチ)という形にまとめることができるので、使う時にいちいちコマンドを入力しなくても、batファイルを起動することで事前に用意しておいた処理をまとめて実行することが出来ます。
今回はすぐに使える状態のものを作成しましたので、下記のバッチファイル全文をコピペするだけで「複数のzipを一括解凍する機能」が使えるようになります。
また、せっかくなので「すべて展開」と同様の操作感を実現したいと思いましたので、コンテキストメニュー(右クリックメニュー)からbatファイルを起動する方法もあわせてご紹介します。
バッチファイル全文
@echo off
:loop
if "%~1" == "" goto end
if "%~x1" == ".zip" (powershell expand-archive %1 %~p1%~n1 -Force)
shift
goto loop
:end
使い方
- 上記コードをテキストエディタにコピペして保存
- 拡張子を.txtから.batに変える
- 「shell:sendto」に置く(下図を参照)
- zipファイルを右クリック > 送る > batファイル名
※ちなみに、zipファイルをbatファイルにドラッグ&ドロップしても動きます ⇨ 使い方は前回の記事を参照
注意点(うまく動かない時は)
- ファイル名・フォルダ名にスペース等があると上手く動きません。
- PowerShellのバージョン5.0以上が必要です。(Windows10ならプリインストールされていますが、Windows7だとバージョンアップが必要かも)
- zipの中身だけその場に解凍したいなら4行目の「%~n1」を消すと良いです。
- 解凍後に同名のファイルがあれば問答無用で上書きします(-Forceオプション)