1. ホーム
  2. windows

ラベルが存在するにもかかわらず、"The system cannot find the batch label specified "と表示されるのはなぜですか?

2023-09-14 18:43:28

質問

Windows XP でバッチ ファイルを実行中に、ランダムに発生するエラー メッセージを発見しました。

name_of_labelに指定されたバッチラベルが見つかりません。

もちろんラベルは存在します。このエラーの原因は何ですか?

どのように解決するのですか?

実は、これには2つの条件が必要です。

  • バッチ ファイルが CRLF 行終端を使用してはならない。
  • ジャンプ先のラベルはブロック境界をまたがなければならない (スクリプトの終わりへの単なるショートカットである :end ラベルとは対照的である)

参照してください。 指定されたバッチラベルがシステムで見つかりません (によって)、および バッチ・アズ・バッチ・キャン!

デビッド・A・グレイ 言及 コメントで を見る (Windows 10) マーシャル 's 答え が2014年に示した(おそらくWindows 7または8で):スクリプト/バッチプログラム( .bat または .cmd ) を使わずに実行されます。 CALL を付けずに実行すると、eol変換が発生します。

私は過去 35 年間で何百ものバッチ スクリプトを書いてきましたが、ラベルが見つからないという問題が発生したのは、ファイルの改行が Windows (CR/LF) から Unix (LF) に変換されたときだけでした。


2020年2月 キナル が追加されます。 をコメントとして追加します。 :

ちょうど Win7 マシンでこの問題に遭遇しました。

このエラーは、他の CALL を試みるときにも発生することが判明しました。 .bat ファイルがシステム上に存在しない場合に、そのファイルを呼び出そうとしたときにもこのエラーが発生することがわかりました。

私の場合、Visual Studio の vcvarsall.bat ファイルを、VS がインストールされていないシステムで呼び出そうとしました。

参照 ジェブ 's 答え をご覧ください。それは未定義のラベルのケースでした。


注意:Git リポジトリの場合、私は推奨するのは .gitattributes ファイルにディレクティブを記述してください。

*.bat   text eol=crlf