記事
エクスプローラの右クリックから渡されるパスは常にショートファイル名、しかしこれには大きな罠が・・・
Shell
公開日:2009/02/05 22:36
最終更新日:2009/02/05 22:39
私はよく拡張子固有で実行できるスクリプトを作るのですが、その際、お約束でこのような感じでレジストリを登録します。
txtfile
hoge
command
cscript //nologo hoge.js "%1" "%*"
このとき、スクリプトに渡されるのはショートファイル名なのですが、あるとき、すごく困りました。
それは.NETのCONFIGファイルやJavaソースのJAVAファイルの拡張子を判別しようとしたときで、ショートファイル名だと、拡張子の3文字目に「~」がついてしまい、4文字以上の拡張子は判別できないのです。
よって、どうしても4文字以上の拡張子を扱いたい場合はファイル名をロングファイル名へ変換しなければなりません。
txtfile
hoge
command
cscript //nologo hoge.js "%1" "%*"
このとき、スクリプトに渡されるのはショートファイル名なのですが、あるとき、すごく困りました。
それは.NETのCONFIGファイルやJavaソースのJAVAファイルの拡張子を判別しようとしたときで、ショートファイル名だと、拡張子の3文字目に「~」がついてしまい、4文字以上の拡張子は判別できないのです。
よって、どうしても4文字以上の拡張子を扱いたい場合はファイル名をロングファイル名へ変換しなければなりません。

