• ベストアンサー

バッチファイルについて

以前、C:\Windows直下に「e.bat」というファイルを作成すれば コマンドプロンプトを『e』と入力するだけで、終了することを 教えてもらいました。 でもこれがどうしてこのような動きになるのかが分かりません。 教えてください。

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.5

★実行コマンド名について ・拡張子を除いたベース名のみの入力は  (1)『ベース名.com』を探す。  (2)『ベース名.exe』を探す。  (3)『ベース名.bat』を探す。  (4)『ベース名.XXX』を探す。→環境変数『PATHEXT』に登録されている拡張子を追加して探す。  の順に探して見つかったらば実行します。 ・また探すディレクトリ(フォルダ)は  (1)カレントのディレクトリを探す。  (2)環境変数『PATH』に登録されているディレクトリを探す。  の順に探して見つかったらば実行します。 ・上記の順番の組み合わせで見つからないとお馴染みの実行エラーになります。 ・拡張子を付けたファイル名の入力は  (1)カレントのディレクトリで探す。  (2)環境変数『PATH』に登録されているディレクトリで探す。  の順に探して見つかったらば、拡張子に関連付けられたプログラム(ソフト)で実行します。  もし、拡張子の関連付けがなければ実行エラーになります。  つまり、拡張子を付けてファイル名が存在していても、関連付けがなければ実行エラーになります。 最後に: ・『e』と入力しただけでコマンドプロンプトが終了できたのは、カレントのディレクトリか  環境変数『PATH』で設定されているディレクトリの何処かに『e.bat』が存在していたからです。  また『e.bat』の内容が『EXIT』というコマンドプロンプトを終了させる『内部コマンド』だから  『EXIT』と入力しないでも同等な機能として『e』の1文字で終了できるのです。 ・以上。下の『参考URL』もどうぞ。

参考URL:
http://www.fpcu.jp/dosvcmd/bbs/log/
otaks
質問者

お礼

なんと詳しく説明していただいて・・ これでもうこの問題では迷うことはなくなりそうです。 ご回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.4

PATHEXTという環境変数を見てみてください。 ここに拡張子が登録されていればファイル名(拡張子なし)だけでアクションを起こすことが出来ます。逆に登録されていない場合は拡張子まで書かなければ動きません(エラーになります)。 試しに.BATを消してみたり、何らかのファイル(例えばHTMLなど)の拡張子を追加してみたりすると動きがよくわかると思います。

otaks
質問者

お礼

PATHEXTはこのためにあるんですね、知りませんでした。 ご回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • gypsywind
  • ベストアンサー率30% (4/13)
回答No.3

C:\Windows直下に作成するのは、PATHのためです。 コマンドプロンプトはPATHの指すフォルダから コマンドファイル(.exe,.com,.bat等)を探してくれます。 exitは、コマンドプロンプトを終了させるコマンドです。 eと打つ代わりにexitと直接打ってもご希望の動作をします。 余談ですが、一文字バッチファイルはあまりお勧めではありません。 タイプミスでコマンドが動いてしまうこともありえますからね。

otaks
質問者

お礼

exitと打つのがめんどくさいのでeで終了するように したんですけど、使うときには気をつけないとだめですね ご回答ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.2

それは c:\Windows にパスが通っているからです PATHの考え方については参考URLを確認してください (説明はDOSですがWindowsのコマンドプロンプトでも同じです)

参考URL:
http://journal.mycom.co.jp/special/msdos/029.html
otaks
質問者

補足

パスが通っていると、そのパスが通ってるディレクトリに ある実行ファイルを実行できるだけだと思っていました。 いろいろ実験してみたら、 「実行ファイル」と「バッチファイル」は、拡張子まで指定しなくても開けるようです。 (「.」より前の名前部分だけ指定) その他のファイルは、拡張子も含めた全部を指定すれば開けるようです。 このような切り分けの考え方であっていますか?

すると、全ての回答が全文表示されます。
  • gypsywind
  • ベストアンサー率30% (4/13)
回答No.1

e.batの内容がわからないと回答できないと思います。 メモ帳でe.batを開いて、内容を記述してください。

otaks
質問者

補足

投稿してから中身を書いていないことに気づきました… 中身は「exitと改行」です。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A