2017年9月
          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
無料ブログはココログ

« cmd.exeをコンソールアプリの起動に使う。 | トップページ | ファイルの関連付けで、長いファイル名を短いファイル名に変換する。(その2) »

2009年4月24日 (金)

ファイルの関連付けで、長いファイル名を短いファイル名に変換する。

コンソールアプリなら、cmd.exeを使って、例えば、

exe "%1" %*

の代わりに、

cmd.exe /q /c for %%I in ("%1") do for %%J in ("%~dpsI%~nxI") do exe %~sJ %*

ウィンドウアプリの場合は、cmdw.exeを使って、

cmdw.exe /c for %%I in ("%1") do for %%J in ("%~dpsI%~nxI") do start exe %~sJ %*

ここで、

cmd /c でのfor変数は%文字ですが、関連付けで%英数字は関連付け変数に解釈されるので、%%でエスケープします。

forを二段重ねているのは、%~sIの障害対策です。

« cmd.exeをコンソールアプリの起動に使う。 | トップページ | ファイルの関連付けで、長いファイル名を短いファイル名に変換する。(その2) »