選択されたファイルをまとめて圧縮するX-Finderスクリプト 2011-04-17 (Sun) 23:59

選択されたファイルを個別に圧縮するX-Finderスクリプト」を書いた序でに「選択されたファイルを圧縮する その3」のスクリプトも少々修正。

ファイルを個別に圧縮するスクリプトに合わせて圧縮に使用するツールを7za.exe → 7z.exeに変更し、圧縮ファイルを作成するフォルダも指定できるようにした。圧縮可能な形式はzipまたは7z。

尚、圧縮ファイル名は1番目に選択されたファイル名を元に自動的に決定される。決定されたファイル名が既に存在していたら追番を付けて作成する。
ex) test1.txt test2.txt test3.txt → test1.zip (圧縮先フォルダに同名ファイルが存在していたら test1 (1).zip)

◎使用方法
1.下記スクリプトをX-Finderのscriptフォルダに保存する
指定先に圧縮.js
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateTrue = 0, TristateFalse = -1, TristateUseDefault = -2;

var i;
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 = '.' + WScript.Env('Arg1');
var sName = sBnam + sExt;
var sTemp = WScript.Env('Temp') + '\\' + oFs.GetTempName();
var sPgpath = '"' + WScript.Env('Arg2') + '"';
var sPara = WScript.Env('Arg3');
var sOut = WScript.Env('Arg4');
var oTf = oFs.OpenTextFile(sTemp, ForWriting, true, TristateUseDefault);

oSh.CurrentDirectory = oFs.GetParentFolderName(cSel.Item(0));
oSh.CurrentDirectory = oFs.GetFolder(sOut).Path;
for(i = 0 ; 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();
oSh.Run(sPgpath + ' a ' + sPara + ' "' + sName + '" @' + sTemp, 7, true);
oFs.DeleteFile(sTemp);

2.スクリプトを呼び出すランチャを作成する。
スクリプトを呼び出す際に環境変数を介して以下のパラメタを渡す必要がある。
Arg1 : 圧縮形式 ex) zip or 7z
Arg2 : 7z.exeのパス ex) D:\Tools\7z\7z.exe
Arg3 : 圧縮パラメタ(7z.exeのスイッチ。7z.exeのマニュアル参照) ex) -mx=5 -y -scsWIN
Arg4 : 圧縮先フォルダ ex) .\ : カレント %Other% : 反対側

ex1) 圧縮するファイルと同じフォルダにまとめてZip圧縮
パス
Set:Arg1=zip
Set:Arg2=D:\Tools\7z\7z.exe
Set:Arg3=-mx=5 -y -scsWIN
Set:Arg4=.\
Include:JScript 指定先に圧縮.js

ex2) 反対側のパス(タブ)にまとめて7z圧縮
パス
Set:Arg1=7z
Set:Arg2=D:\Tools\7z\7z.exe
Set:Arg3=-mx=5 -y -scsWIN
Set:Arg4=%Other%
Include:JScript 指定先に圧縮.js

3.作成したランチャを実行する

以上。
関連記事

コメントの投稿

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

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

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

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

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

記事内容の誤りの指摘、疑問点の回答などコメント頂けると助かります。
カレンダー
05 | 2017/06 | 07
- - - - 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 -
ブログ内検索
カラーコードチェッカ
カラーコードの確認
入力例) #ffffff | blue
カテゴリ
最新記事
最新コメント
最新トラックバック
リンク
ブロとも申請フォーム

この人とブロともになる

メールフォーム

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