Windows10エクスプローラーで兄弟フォルダ(前後フォルダ)への移動ショートカットキーが欲しかったので、o3に聞いたらQTTabBarのスクリプトを使えばできるとのこと。スクリプト書いてと頼んだら、1回の修正で動作するものが出た。めっちゃ便利!
C:\images\
├─ 2025-04-17
├─ 2025-04-18
├─ 2025-04-19 ←いまここ
├─ 2025-04-20
こういう時に、前後に一発で移動できたら便利なわけです。
せっかくなので、下記に共有しておきます。(ポン出しなので中身はかなり適当そうですが動きます)
// ─── Next / Prev Sibling Folder ───
// --- Polyfill ---
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (val, from) {
var l = this.length >>> 0;
for (var i = (from || 0); i < l; i++)
if (this[i] === val) return i;
return -1;
};
}
// --- Main ---
var qs = new ActiveXObject("QTTabBarLib.Scripting");
var wnd = qs.ActiveWindow;
if (!wnd) WScript.Quit();
var goNext = (WScript.Arguments.length === 0) ||
(WScript.Arguments(0).toLowerCase() === "next");
var tab = wnd.ActiveTab;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var here = fso.GetFolder(tab.Path);
function siblings(folder){
if (folder.IsRootFolder){
var d=[], e=new Enumerator(fso.Drives);
for(;!e.atEnd();e.moveNext()) d.push(e.item().Path);
return d;
}
var list=[], e=new Enumerator(folder.ParentFolder.SubFolders);
for(;!e.atEnd();e.moveNext()){
var f = e.item();
if ((f.Attributes & 4) || (f.Attributes & 1024)) continue; // システム/リンク除外
list.push(f.Path);
}
return list.sort();
}
var bros = siblings(here);
var idx = bros.indexOf(here.Path);
if (idx === -1) WScript.Quit();
var step = goNext ? 1 : -1;
var next = (bros.length + idx + step) % bros.length;
tab.NavigateTo(bros[next]);
これを「GoToNextSiblingFolder.js」などと適当な場所に保存して(Shift_JIS)、QTTabBarのアプリケーションランチャーに登録すれば良いんですが、自分の環境ではJSファイルがテキストエディタに関連付けられているからか、実行するとテキストエディタが開いてしまったので、下記のように「C:\Windows\System32\wscript.exe」を実行して引数にJSファイルを入れました。
「前のフォルダに移動」は引数を「prev」にして、もう一個登録すればOK。ショートカットキーは「Ctrl+Down」「Ctrl+Up」などご自由に。