• ベストアンサー

バッチファイルについて

以前、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

  • バッチファイル

    オラクルのデータベースのバックアップをとるコマンドをうつと、 C:\>exp ??????? 配列フェッチ・バッファ・サイズを入力してください。: 4096 > エクスポートするファイル: EXPDAT.DMP > aa.dmp モード選択:(1)E(全データベース),(2)U(ユーザー),(3)T(表): (2)U > というように、途中途中で入力を求められるんですが、このように コマンドを打ったあとの入力操作もまとめてやらせられるような WINDOWSのBATファイルをつくることは可能なんでしょうか?

  • バッチファイルの実行方法

    Windows Server 2003で、Robocopy.exe(Resource KitToolsからインストールしたもの)の連続処理のために、下記のようなバッチファイル(.bat)を用意しました。 robocopy "D:\a" "F:\a" /E /copy:DT /NP /LOG:c:\robocopy.txt /TEE robocopy "D:\b" "F:\b" /E /copy:DT /NP /LOG+:c:\robocopy.txt /TEE .... コマンドの各行は間違っていないようです(cmd.exeに各行を打ち込んで実行すると正常に処理されます)。しかし.batをダブルクリックするとコマンドプロンプト画面内でバッチファイルの1行目がすごい勢いで流れるだけで、処理されません(コマンドプロンプトを強制終了するしかありません)。 最初は.batをダブルクリックすると正常に処理されていたのですが、急にこうなりました。なぜでしょうか? command.comから.batファイルを実行すると正常に処理されます。command.comから実行しないといけないものなのでしょうか? バッチファイルの拡張子を.batにするか、.comにするか関係があるでしょうか?

  • バッチファイルの作成について

    分からないことが2つありますので、 質問させていただきます。 1.バッチファイルを実行するときに   他のパソコンでは出来ない環境とかはあるのか。  (例えば、ファイル削除のバッチファイルを作成したとします。   管理者権限でバッチファイルを実行したにも関わらず   消せない…なんていうことはあるのでしょうか?   以前、プログラムを書いて、自分のパソコンでは上手く動作したのですが、   他のパソコンだと上手く動作しませんでした。(ファイルの削除が上手く行かなかった)   それに対する対応策などもあれば、教えてください。) 2.バッチファイルのコマンドプロンプトが自動終了するのを防ぎたい   IEが自動で上がるのを防ぐために、コマンドプロンプトで   IE_BLOCKERを実行し、キーボードで色々入力して実行していく必要があります。   そこで、 cd C:\IE10_Blocker IE10_Blocker.cmd /B pause 上記のように書き、 batファイルとして保存しました。 しかし、pauseがきくことなく、勝手に画面は閉じてしまうし、 C:\にIE10_Blockerが無かったとしても分からなくなってしまいます。 何か改善策はあるのでしょうか? 以上、よろしくお願い致します。

  • バッチファイルを1個だけしか起動しないようにしたい

    エクスプローラー上から バッチファイル(test.bat)を ダブルクリックしてバッチファイルを実行しています。 通常はコマンドプロンプトが1個だけ表示されて、 バッチファイルが実行して実行が終了すると コマンドプロンプトも閉じられます。 しかし、時々、 コマンドプロンプトが2個表示されることがあります。 つまり、ダブルクリックが、 1回ではなく2回実行されたと誤認識されて、 同じバッチファイル(test.bat)が 2つ起動してしまったと思われます。 当然、その後の処理はおかしくなります。 (バッチファイル(test.bat)の中に 何らかのコードを追加するなどして) 必ず1個だけしか起動しないようにすることは、 できないでしょうか。 (Windows10)

  • BATファイル実行にフォーカスを当てたい

    Windows2008サーバにRDPでWindows7から実行しています。 サーバにBATファイルを作成し、(XCOPYコマンド)データのバックアップを行います。 この時ですが、クライアント(Windows7)で実行させたBATファイルですが(コマンドプロンプト)画面が なぜか背面にかくれてしまい、BATの実行内容がみれなくなることがあります。また、BATの終了時に、正常終了かどうかの表示を行い、Pauseコマンドで止めていますが、これが、背面にかくれてしまい、いつ終ったのかわからない状態です。ずーっとBAT自動されたコマンドプロンプトの表示にフォーカスを当てたいのですが、BATに記述することにより、再度フォーカスを取り戻すようなコマンドはあるでしょうか?よろしくお願いします。

  • バッチファイルがデスクトップからしか開けない

    調べてもちょっとわからないのでお聞きします。 作成したバッチファイルをデスクトップに保存した場合は開けるのに、普通のフォルダに保存して エクスプローラーから開こうとすると開けません。一瞬コマンドプロンプトの画面が出て、速攻で消えてしまい、結局実行されていません。たとえば chrome.bat(ファイル名) start chrome と保存した場合、デスクトップからはちゃんとchromeが起動するのにエクスプローラーからだとできません。 なぜでしょうか。一瞬コマンドプロンプトのウィンドウが出てすぐ消えてしまいます。 原因がわかる人がいたら回答をお願いします。

  • バッチファイルの作成

    お世話になっております。 バッチファイルの作成方法について、只今勉強中です。 現在、毎日行われている作業をバッチファイルで自動化が出来ないか検討しておりますが、バッチファイルの編集に苦戦していて困っております・・・ ---実行したい事--- 0.以下、作業の流れをコマンドプロンプト上で表示する。 1.C:\ツール\batというフォルダに移動する。 2.batフォルダに新しく「file」というフォルダを作成 3.batフォルダ内には「bat_YYYY/MM/DD.txt」という日付のテキストがあり、該当する日付のテキストをコピーしてfileフォルダへ貼り付ける。 4.fileフォルダへ移動する。 ---終了--- 手順を全部書いてしまっているのですが、途中まではバッチファイルの編集をする事が出来ました。しかし、正解しているか不安です。 ご教授の程、宜しく御願い致します。

  • バッチファイルでMDBを終了したい。

    いつもお世話になっています。 今回はあるmdbファイルをバッチファイルを使って終了させたいのです。 例えば、Dドライブ直下に123.MDBというファイルがあります。これを19:00に終了させたいのですがどうしたらいいのでしょうか?バッチファイルを作成できればタスクマネージャーを19:00に実行して終了させようかと思っています。MDBのタイマーイベントは別で使用している為、使えません。コマンドプロンプト等でなんとか・・・ ご理解いただけましたでしょうか? よろしくお願いします。

  • こんなバッチファイルってできますか?

    あるディレクトリから実行するプログラムがあります。 このプログラムは、パラメタを取り込みますが、常に同じ物ではありません。 コマンドが長いので、パラメタを入力するだけの状態でコマンドを表示させるにはどうすればよいでしょうか。 具体的にいうと『evtutlnt ustatusall -s 開始番号 -e 終了番号』 このコマンドをDOSプロンプトに表示するバッチファイルを作りたいのです。

  • バッチファイルで実行できたりできなかったり

    こんにちは。 バッチファイルとコマンドプロンプトについて、少々お伺いしたいことがあります。 まず、コマンドプロンプトで以下のコマンドを打ち込んでみたところ、すべて正常に実行することができました。 ping [example.com] > result.txt tracert [example.com] >> tr_result.txt ipconfig /all > ipc_result.txt 次に、各コマンドをテキストファイルに書き込んで、それぞれ "p_test.bat" # 内容は ping コマンド "tr_test.bat" # 内容は tracert コマンド "ipc_test.bat" # 内容は ipconfig コマンド と命名しデスクトップに配置、ダブルクリックで実行してみました。 すると、このうち正常に実行(結果をテキストファイルに出力)されたのは tr_test.bat のみでした。 ここで質問なのですが、なぜこのような違い(バッチファイルにすると実行できるものとできないものに分かれる)が起こるのでしょうか? バッチファイルの作り方やとコマンドプロンプトについて調べてみましたが、説明を見つけることが出来ませんでした。 この辺の理論について詳しい方がおりましたら、ご教示頂きたく思います。 ちなみに、OS は Windows XP SP2 です。 よろしくお願いいたします。

元カレと久しぶりに再開
このQ&Aのポイント
  • 7年ぶりに元カレから連絡があり、再会することになりました。
  • 元カレは離婚したと報告し、久しぶりの再開を約束しました。
  • 会う場所はホテルのロビーで、特別な思い出を持つ人との再会にワクワクしています。
回答を見る