- ベストアンサー
batファイルでのファイル名取得について
おそれいります。ご教示くださいませ。 ファイル拡張子xxxをxxx.batに関連付けしました。 test.xxxをダブルクリックするとxxx.batが実行されるシカケです。 実行されたxxx.batでtest.xxxというファイル名を取得したいのですが方法がわかりません。 %0にはxxx.batがセットされてしまうからです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
一般に、例えば、 hogehoge.txtのファイルをダブルクリックすると メモ帳が起動し、hogehoge.txtの中身が開くわけですが、 それは、内部的には、 notepad.exe hogehoge.txt というコマンドが実行されているからです。 いま、 >test.xxxをダブルクリックするとxxx.batが実行されるシカケ であれば、 内部的には、 xxx.bat test.xxx が実行されています。 つまり、 第一引数に期待の文字列が埋まっていることになりますので、 %1で取得できるハズです。
お礼
ご教示ありがとうございます。 私もまったくおっしゃるとおりだと思うのですが、 実際にやってみると以下のように%1の中身は空っぽなのです。 拡張子の関連付け D:\tmp\test>assoc .xxx=xxxfile .xxx=xxxfile D:\tmp\test>ftype xxxfile=D:\tmp\test\xxx.bat xxxfile=D:\tmp\test\xxx.bat xxx.batの中身 D:\tmp\test>type D:\tmp\test\xxx.bat @echo off echo %0=%0 echo %1=%1 test.xxxを作成 D:\tmp\test>echo @echo off > test.xxx test.xxxを実行 D:\tmp\test>test.xxx %0="D:\tmp\test\xxx.bat" %1= ↑ ここにtest.xxxが表示されそうなものなのですが…。