読者です 読者をやめる 読者になる 読者になる

素人趣味のWeb制作ブログ

素人趣味でやってるWeb制作とかプログラミングとかそっち系の話題についてのブログです。

素人趣味でやってるWeb制作とかプログラミングとかそっち系の話題についてのブログです。

Explzhを使ってダブルクリックで解凍→元ファイル削除したい

昨年iMacが逝って以来、以前メインで使っていたWindowsマシンを使っている訳なんだけど、圧縮ファイルをダウンロードするたびに右クリックして即時解凍、元ファイルは手動で削除、みたいな超めんどくさい作業を強いられてました。

iMac使ってた頃の環境では圧縮ファイルをダブルクリックすると解凍して元ファイルを削除してくれるのが普通になってたから、Windowsでも同じ環境にしたいと思い立ったんだけど、僕のお気に入りの圧縮・解凍ソフトであるExplzhだと元ファイルを削除する設定を解凍のたびに選択しないとダメみたいな感じで無理っぽい。 Lhaplusだと簡単にできるんだけど、RARファイルも解凍したいのでExplzhで実現したいところ。

というわけで、VBの出番。

必要なもの

ソースコード

Option Explicit

Dim i
Dim argv
Dim ws
Dim query
Dim archiver
Dim recycler

archiver = """C:\Program Files\Explzh\EXPLZH.EXE"" /e"
recycler = """GB.exe"""

Set argv = WScript.Arguments
Set ws = CreateObject("Wscript.Shell")

For i = 0 To argv.Count-1
  query = "cmd /c """ & archiver & " """ & argv(i) & """"""
  ws.run query,0,true
  query = "cmd /c """ & recycler & " """ & argv(i) & """"""
  ws.run query,0,true
Next

解説と

バッチで書くと実行時にDOS窓が出てしまうのでVBを選択しました。 Explzhの/eオプションで解凍、解凍が終わるのを待ってGB.exeを使ってゴミ箱に元ファイルを捨てるようにしてます。やたらとダブルクォーテーションが多くて黒魔術みたいになってるのはご愛嬌。

使い方

上記のソースコード(ExplzhやGB.exeのファイルパスが違う場合は要変更)を拡張子.vbsで保存して、MakeExeなどのソフトでEXEファイル形式に変換して適当な場所に配置し、ZIPなどの圧縮ファイルにアプリケーションの関連付けをしてやります。あとはダブルクリックするだけで解凍→元ファイル削除されるように!