Actually, you need 2 conditions for this to happen:
- the batch file must not use CRLF line endings
- the label you jump to must span a block boundary (as opposed to and :end label wich is just a shortcut to the end of your script)
See. The system cannot find the batch label specified (by and Batch-as-batch-can!
David A. Gray mentions in the comments seeing (on Windows 10) what Marshal's answer showed in 2014 (presumably on Windows 7 or 8): a script/batch program (.bat
or .cmd
) executed without CALL
would trigger an eol conversion.
I've written hundreds of batch scripts over the last 35 years, and the only time I've ever had an issue with labels not being found was when the file's line breaks got converted from Windows (CR/LF), which works, to Unix (LF), which doesn't.
Feb. 2020, kinar adds in the comments:
Just encountered this issue on a Win7 machine.
Turns out this error can also be generated when trying to CALL another .bat
file if that file doesn't exist on the system.
In my case, I was trying to call the Visual Studio vcvarsall.bat
file on a system without VS installed.
See jeb's answer for more: it was a case of an undefined label.
Note: in a Git repository, I would recommend a .gitattributes
file with the directive:
*.bat text eol=crlf
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…