我有一个批处理脚本,用于在运行特定代码块之前检查用户的输入。两个块都操纵相同的变量,但即使我选择执行第一个块,第二个块的变量也会被设置。
代码:
if %x == 1 goto :Block1
if %x == 2 goto :Block2
:Block1
set variable== "Works"
:Block2
set variable == "Works"
即使我输入了1,块2也在执行。我错过了什么吗?
答案 0 :(得分:0)
与许多语言不同,批处理没有概念结束"程序" - 它只是逐行继续执行,直到它到达文件结尾。因此,在完成主线之后需要goto :eof
,否则将继续执行子程序代码。 :EOF
是CMD
理解为end of file
的预定义标签。冒号必需。