IT/PC関連

【VBS】圧縮解凍ソフトをスクリプトで動かして個別圧縮する方法

2進数のイメージ

こんにちはノアです。
皆さんはVBScriptってご存知ですか?MicrosoftのVB(Visual Basic)言語風の書き方ができるスクリプト言語なのですが、今回はこのスクリプト言語を使用して、ファイルの圧縮・解凍を便利にしようというお話です。

個別圧縮機能をスクリプト言語で実現する

個別圧縮機能というのは、圧縮解凍ソフトが持っている機能のひとつです。一般的に圧縮解凍ソフトは、複数のフォルダやファイルをアイコンにドラッグ&ドロップすると、1つのフォルダにまとめて圧縮します。個別圧縮機能を使用すると、複数のフォルダやファイルを1つずつ個別に圧縮してくれます。使い所は限られますが、有るとかなり便利な機能です。

  • 通常の圧縮(複数のフォルダをドラッグ&ドロップ)
  • 個別圧縮(複数のフォルダをドラッグ&ドロップ)

私はフォルダの名前を日付にして、日々の成果物を整理することが多いのですが、数ヶ月も経ったフォルダは、容量を節約するために圧縮しています。この方法ですと毎日フォルダが増えていくので、月~金で週5日働いた場合は1ヶ月で20個前後のペースでフォルダが増えていくことになります。日付のフォルダを1か月ごとのフォルダに入れて、1か月ごとのフォルダを年のフォルダに入れて…中身を思い出せなくなるくらい時間が経ったら削除するようにしています。

こういった場合、日付のフォルダを複数選択、圧縮・解凍ソフトにドラッグ&ドロップ、個別に圧縮できると、後からデータを探すことになった場合、ピンポイントで日付のファイルを見つけ出して解凍できるので、とても便利です。

この記事では定番の圧縮解凍ソフトであるLhaplusと、通常のZIP形式よりも高い圧縮率の7z形式で圧縮できる7-zipでこの機能を実現してみます。

Lhaplusは古くからの定番ソフトで多機能なのですが、個別圧縮機能は持っていません。ですが、Windowsのコマンドプロンプトなどで使用できる「コマンドラインインターフェース」を持っているため、スクリプト言語で操作することが可能です。

Lhaplusを使用する場合

ふりかえるくん
ふりかえるくん
事前にLhaplusをインストールしてください
未完ちゃん
未完ちゃん
Windowsが32bitか64bitでインストール先が異なるので、環境に応じてarcPathの値を書き換えてね

ふりかえるくん
ふりかえるくん
command = arcPath & ” /o:” & dest & ” /c:zip “”” & arg & “”の部分で、Lhaplusのコマンドラインオプションを指定しています。
未完ちゃん
未完ちゃん
上のソースをメモ帳にコピペして、拡張子をtxtからvbsに変更すると、連続圧縮バッチの完成だよ!

7-zipを使用する場合

ふりかえるくん
ふりかえるくん
事前に7-zipをインストールしてください
未完ちゃん
未完ちゃん
7z.exeが有ればこのバッチは動くよ

ふりかえるくん
ふりかえるくん
Command = arcPath & ” a -t7z ” & “””” & dest & “.7z” & “””” & ” ” & “””” & arg & “”””の部分で、7-zipのコマンドラインオプションを指定しています。
未完ちゃん
未完ちゃん
上のソースをメモ帳にコピペして、拡張子をtxtからvbsに変更すると、連続圧縮バッチの完成だよ!

それでは今回はこのへんで、お先に失礼します!

この記事のアイキャッチ画像は胡麻油さんによる写真ACからの写真を使用しています。

ABOUT ME
アバター
angelion
実務で使えるExcel-VBA、Word-VBA、VBSの小技を紹介します。またPC関連の時短グッズや子育て日記なども書きます。