[Tablacus Explorer] 現在のフォルダでコマンドプロンプトなどを開く

Tablacus Explorer で現在のフォルダでコマンドプロンプトなどを開く方法のメモ。

現在のフォルダでコマンドプロンプトを開く

タイプ: 実行

オプション: %ComSpec% /K cd /d %Current% & prompt $E[44m$P$_$E[40m

prompt $E[44m$P$_$E[40m はなくてもいい(Windows7などではansiconを使わないと色つかない)

コマンドプロンプトを現在のフォルダでCmder内に開く(JScript)

Cmderの単一ウィンドウにまとめたいのだけど、 現在のCmder.exeではなぜか最初のディレクトリを指定できないバグ?があるので、 Cmder.exeのあるフォルダの vendor/init.batvendor/_init.bat にコピーして、 vendor/init.bat を下記の内容に変更する。

1
2
3
4
5
6
7
8
9
@if exist "%~dp0MY_START_DIR.TXT" (
@set /p MY_START_DIR=<"%~dp0MY_START_DIR.TXT"
@type nul>"%~dp0MY_START_DIR.TXT"
)
@set "MY_START_DIR=%MY_START_DIR:"=%"

@call "%~dp0_init.bat"

@if exist "%MY_START_DIR%" @cd /d "%MY_START_DIR%"

で、tablacusのキーアドオンなどで下記のJScriptを実行する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var p, q, i,
paths = ['★Cmder.exeのパス★'],
current = eventTE.Environment.current();

for (i = 0, l = paths.length; i < l; i++) {
p = paths[i];
if (fso.FileExists(p)) {
q = '"' + fso.GetParentFolderName(p) + '\\vendor\\MY_START_DIR.TXT' + '"';
wsh.Run('%ComSpec% /C echo ' + current + '>' + q + '&' + p + ' /SINGLE', '3');
return;
}
}

wsh.Run('%ComSpec% /K cd /d ' + current + '&prompt $E[44m$P$_$E[40m', '3');

あるいは最初はコマンドプロンプトで起動して 自分で好きにCmderに切り替える方が便利かもしれない。 下記のJScriptで、Cmderに切り替えたい時に %ToCmder% を実行する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var p, q, i, toCmder = '',
paths = ['★Cmder.exeのパス★'],
current = eventTE.Environment.current();

for (i = 0, l = paths.length; i < l; i++) {
p = paths[i];
if (fso.FileExists(p)) {
q = '"' + fso.GetParentFolderName(p) + '\\vendor\\MY_START_DIR.TXT' + '"';
toCmder = 'echo ' + current + '>' + q + '&' + p + ' /SINGLE' + '&exit /b 0';
toCmder = '&set "ToCmder=' + toCmder.replace(/"/g, '""') + '"';
break;
}
}

wsh.Run('%ComSpec% /K cd /d ' + current + '&prompt $E[44m$P$_$E[40m' + toCmder, '3');