老親介護に悩む30~60代の方へ
老親介護ねっと[老人ホーム編]
トップ 老人ホームの選び方 介護関連ニュース 新規オープンホーム情報 老人ホーム取材レポート お問い合わせ リンク集 Q&A

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

batファイルでのファイル名取得について

おそれいります。ご教示くださいませ。
ファイル拡張子xxxをxxx.batに関連付けしました。
test.xxxをダブルクリックするとxxx.batが実行されるシカケです。
実行されたxxx.batでtest.xxxというファイル名を取得したいのですが方法がわかりません。
%0にはxxx.batがセットされてしまうからです。

投稿日時 - 2018-05-14 07:59:34

QNo.9498283

困ってます

質問者が選んだベストアンサー

一般に、例えば、
hogehoge.txtのファイルをダブルクリックすると
メモ帳が起動し、hogehoge.txtの中身が開くわけですが、

それは、内部的には、
notepad.exe hogehoge.txt
というコマンドが実行されているからです。

いま、
>test.xxxをダブルクリックするとxxx.batが実行されるシカケ
であれば、
内部的には、
xxx.bat test.xxx
が実行されています。

つまり、
第一引数に期待の文字列が埋まっていることになりますので、
%1で取得できるハズです。

投稿日時 - 2018-05-14 10:11:18

お礼

ご教示ありがとうございます。
私もまったくおっしゃるとおりだと思うのですが、
実際にやってみると以下のように%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が表示されそうなものなのですが…。

投稿日時 - 2018-05-14 12:01:33

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)