選択されたファイルを圧縮する 2011-02-10 (Thu) 22:55

選択されたファイルをカレントフォルダ(選択したファイルの存在するフォルダ)に圧縮する X-Finderスクリプト。

以前に書いた Explzhの「書庫作成」を実行する - X-Finderスクリプト でも同じ事はできる。
このスクリプトでは、Explzhの「書庫作成」とは違い、圧縮の設定ダイアログで圧縮方法や圧縮率などの細かい指定を行わず、あらかじめ決められた方法で圧縮を行う。
普段よく使う圧縮形式(うちでは7-zip)は決まっているので、細かい指定をする手間を省いてしまおうという訳だ。

注意
1. 赤字の部分(sPgpath)は各々の環境に応じて7za.exeのパスを指定すること。
2. 赤字の部分(sPara)は圧縮オプションなので好みに応じて編集可能。(7-zipのマニュアルを参照して自己責任でどうぞ)
3. 圧縮ファイル名は選択したファイルのファイル名により自動的に決定する。決定したファイル名が既に存在する場合は末尾に連番を付加する。

var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateTrue = 0, TristateFalse = -1, TristateUseDefault = -2;

var i = 0;
var oSh = new ActiveXObject("WScript.Shell");
var oFs = new ActiveXObject("Scripting.FileSystemObject");
var cSel = WScript.Col(WScript.Env('Selected'));
var sBnam = oFs.GetBaseName(cSel.Item(0));
var sExt = '.7z';
var sName = sBnam + sExt, sNam2;
var sTemp = WScript.Env('Temp') + '\\' + oFs.GetTempName();
var sPgpath = '"C:\\Program Files\\7za\\7za.exe"';
var sPara = ' a -t7z -ms=off -mx=7 -r -y -scsWIN ';

var oTf = oFs.OpenTextFile(sTemp, ForWriting, true, TristateUseDefault);

oSh.CurrentDirectory = oFs.GetParentFolderName(cSel.Item(0));
while(true){
    if(oFs.FileExists(sName))
        sName = sBnam + ' (' + (++i).toString(10) + ')' + sExt;
    else
        break;
}
for(i = 0; i < cSel.Count; i++){
    oTf.WriteLine('"' + cSel.Item(i) + '"');
}
oTf.Close();
sNam2 = '"' + sName + '"';
oSh.Run(sPgpath + sPara + sNam2 + ' @' + sTemp, 7, true);
oFs.DeleteFile(sTemp);


7za.exe では zip形式で圧縮することも出来、このスクリプトをちょちょいといじれば対応出来る。
後日また…

7-zipの詳細&ダウンロードはこちらから(7-Zip コマンドラインバージョンを使わせてもらってます。)
7-Zip

関連記事

コメントの投稿

管理者にだけ表示を許可する

注意事項
基本的にこのブログはブログ主の備忘録です。

ブログの内容にはブログ主の主観や時には正確でない情報が含まれていることもあります。書いてある内容がすべての環境にあてはまることを保証するものでもありません。
また過去の記事の情報はそれが参照された時点では既に陳腐化していることもあります。

その辺をご理解の上で当ブログ内に書いてあることを試す場合は自己責任でお願いします。

万一何らかの損害が生じても責任は持てませんのであしからず!

記事内容の誤りの指摘、疑問点の回答などコメント頂けると助かります。
カレンダー
02 | 2017/03 | 03
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
ブログ内検索
カラーコードチェッカ
カラーコードの確認
入力例) #ffffff | blue
カテゴリ
最新記事
最新コメント
最新トラックバック
リンク
ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文: