以前作ったwrap_7zG.jsが機能しなくなってたのでスクリプトを見直してみた。
7-Zipを使い、複数の書庫ファイルを特定のフォルダに展開したい場合に使う。
例えばカレントフォルダに展開したい場合は、書庫ファイルをマークして以下のコマンドを実行する。
*script %0\Script\wrap_7z.js,%a8FCDN,%1
wrap_7z.js
//!*script // 7-zipを実行して展開先フォルダにアーカイブファイルを展開する // 第一引数: レスポンスファイル // 第二引数: 展開先フォルダ if (PPx.Arguments.Length < 2){ PPx.SetPopLineMessage("引数が正しくありません。"); PPx.Quit(-1); } // 7z.exeのパス var Exec = "C:\\Program Files\\7-Zip\\7z.exe"; var responseFile = PPx.Arguments.Item(0); var extractFolder = PPx.Arguments.Item(1); var archiveFiles = GetList(responseFile); // 個々のファイルごとに7-Zipで展開 for (x in archiveFiles){ if (archiveFiles[x] == ""){ break;} PPx.Execute('\"'+Exec+'\" x -o\"'+extractFolder+'\\*\" '+archiveFiles[x]); } // レスポンスファイルからファイル名のリストを作成 function GetList(list) { var f = CreateObject("ADODB.Stream"); f.type = 2; f.charset = "UTF-8"; f.open; f.LoadFromFile(list); text = f.readText(-1).split("\r\n"); f.close; return text; }
0 件のコメント:
コメントを投稿