2.サブ窓でShift+Enterを押し、メイン窓のパスを変更する
「戻る」の履歴は、それぞれのPPCごとに記録され、%*dirhistoryで取得できるもの。ちなみに全PPC共通のヒストリは%hnで取得できる。
KC_main = { \ENTER ,*ifmatch CX,%n %: *execute ,%'ppcx_cmd' %: *stop %K"@\ENTER" CLOSEEVENT ,*ifmatch CX,%n %: *alias ppcx_cmd = %%K"@\ENTER" %: *stop \G ,*ifmatch !CX,%n %: *alias ppcx_cmd = *execute %n,%%%%j%%FCD %%: %%K"@Q" %: *ppc -r -bootid:x -single %*script(%0\Script\dirhistory2file.js9) }
dirhistory2file.js9
//!*script // %*dirhistory(n)をListfile形式でファイルに保存。そのファイルパスを返す // %j %*script(%0\Script\dirhistory2file.js9,fuga.txt) // *ppc -bootid:z -single %*script(%0\Script\dirhistory2file.js9) // という具合に使う // 第一引数 : 保存先のファイルパス(省略可能。その場合はテンポラリファイルに保存) // テンポラリファイル名の作成 function getTempFile() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var tDir = fso.GetSpecialFolder(2); var tFile = fso.GetTempName(); return tDir + "\\" + tFile; } var arr1 = new Array(); var stream = new ActiveXObject("ADODB.Stream"); stream.type = 2; stream.charset = 'UNICODE'; stream.open(); stream.WriteText( ";ListFile", 1); // 第2引数が 0:改行なし, 1:改行あり for (var i = 0; i < 10; i++) { if (PPx.Extract("%*dirhistory\("+i+"\)") != ""){ arr1.push(PPx.Extract("%*dirhistory\("+i+"\)")); // 配列に登録 } else { break; } } // 配列から重複を除く var arr2 = arr1.filter(function (x, i, self) { return self.indexOf(x) === i; }); arr2.forEach(function( value ) { stream.WriteText(value , 1); // 第2引数が 0:改行なし, 1:改行あり }); // 第ニ引数(保存先のファイルパス)があればそこに、なければテンポラリファイルに保存 var filepath; if (PPx.Arguments.Length < 1){ filepath = getTempFile(); } else { filepath = PPx.Arguments.Item(0); } stream.saveToFile(filepath, 2); //1:新規作成 2:新規作成 or 上書き stream.close(); PPx.Result = filepath;
0 件のコメント:
コメントを投稿