UPPER SYSTEM

スポンサードリンク

バッチファイルの名前はコマンド名と同じにしてはいけない

記事タイトルが言いたいことのすべて…。

 

バッチファイル「ping.bat」の中身が下記の通りであるとします。超シンプルですね。
ping 192.168.1.1

 

※ちなみに「192.168.1.1」とは無線LANのルータなどでよく使われるプライベートIPアドレスの代表値です。

 

ファイルを作成し、ダブルクリックしてみます。
batch

 

 

batch

 

「…おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお!!!!!!!!!」

 

人間でいえばそんなこんな感じにバッチが無限ループしています。

 

直接原因は「バッチの名前とコマンド名が同じであること」です。

 

何故上手くいかないかと言うと、「ping.exe」が実行されておらず、

 

当該ファイル自体のping.batを認識しているために中身の無いバッチファイルを自身で指定して無限実行しているのです。

 

(※無限ループは「ctrl + C」で処理を中断しましょう。)

 

pingなど外部コマンドは下記の様にシステムフォルダに実行ファイルがあります。

 

例:C:\Windows\System32\PING.EXE

 

画像での青で囲まれた部分

 

set | find "PATHEXT" というコマンドで優先順位を表示します。
batch
左のほうが優先順位が高いので、EXE>BATですね。

 

従って画像の中の赤枠の中ようにディレクトリ名を含めて直接実行すれば

 

ping.exeが実行されますので、思い通りの結果になります。

 

まあ、とりあえず
分かりやすいからといってコマンド名と同じ名前のバッチファイルを作ってはいけない」と覚えておくとイイと思います。

 

 

  このエントリーをはてなブックマークに追加

スポンサードリンク

関連ページ

HTMLソースを任意のテキストエディタで編集する
新人レベルに基本的なことですが、だからこそ忘れがちなこの設定方法。
バックアップ術@robocopyで別のドライブへ
サイト構築をされている方、日々更新しているファイルが有る方はバックアップを取りたいですよね。会社の業務でも活かせます。robocopy
バックアップ術Aタスクスケジューラで毎日バックアップ(robocopy)
先日紹介したrobocopyコマンドを用いて業務のファイルサーバーを移行させました。普段は夜遅くまでパソコンが触られていますので、タスクスケジューラーを利用して深夜にバックアップを取る方法をご紹介します。
HTMLメールの利点と弊害について
メールにはHTML形式とテキスト形式がありますよね。一般的に会社で用いる場合はテキスト形式にするよう決まっていますがそれは何故でしょうか。
オープン系とホスト(汎用)系の違いを簡潔に
業務システムはオープン系とホスト系に分かれるとか言いますが、両者の違いをしっかり説明できますか?
文字化けと文字コードの指定
新人の頃は文字化けの解決方法すら分かりませんでした。エンコーディングの指定から少し掘り下げて文字コードについて考察してみます。
「nbsp;」って?という疑問を解決しておこう
 って記載をよく見かけますか?HTMLやJSPで「半角スペース」と捉えている方も多いと思いますが、もうちょっと理解を深めましょう。
圧縮したファイルが解凍できない
zip形式で圧縮したファイルが解凍できない。「エラーが発生しました。」そんな気持ちわかるでしょう?
Program Files(x86)フォルダって何?
Program Files(x86)フォルダとProgram Filesの2つの違いをこの際知っておきましょう。
ブルースクリーンの原因と対策
パソコンの画面が真っ青になり、白い英文メッセージが表示されるブルースクリーン。致命的なエラーが発生した際に起こる現象と言われています。
スーパーリロード(フルリロード)とは?
ブラウザ上で開いた情報が最新ではない!キャッシュ機能が働いている際にはスーパーリロードをしましょう。
外字登録の方法
”外字”とは特定の文字集合に含まれない文字の事を言います。漢字の異字体や特殊な記号のことですが、そういった文字を登録して使用する方法をご紹介いたします。
サクラエディタのキーマクロで定形作業を効率化
フリーソフトのサクラエディタは様々な機能を持っており、プログラマー御用達ですね。数ある便利機能のうち、キーマクロをご紹介します。
稼げるプログラミング言語
300を超えるプログラミング言語の中から何を学ぶべきか、何が人気となっているのかを考察します。