2017年11月
      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) »