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などの圧縮ファイルにアプリケーションの関連付けをしてやります。あとはダブルクリックするだけで解凍→元ファイル削除されるように!