Batch file 批处理转到if语句
我的假设陈述是:Batch file 批处理转到if语句,batch-file,Batch File,我的假设陈述是: If %choice%== 1 (goto 1) If %choice%== 2 (goto 2) :1 Echo 1 Pause :2 Echo 2 Pause 如果我选择2,它是有效的,但是如果我选择1,它会变为1,然后变为2 如何解决此问题?通过添加第三个绕过2的goto位置 If "%choice%" == "1" goto 1 If "%choice%" == "2" goto
If %choice%== 1 (goto 1)
If %choice%== 2 (goto 2)
:1
Echo 1
Pause
:2
Echo 2
Pause
如果我选择2,它是有效的,但是如果我选择1,它会变为1,然后变为2
如何解决此问题?通过添加第三个绕过2的
goto
位置
If "%choice%" == "1" goto 1
If "%choice%" == "2" goto 2
:1 Echo 1
Pause
goto 3
:2 Echo 2
Pause
:3
或者可能:
goto opt%choice%
:opt1
Echo option 1
Pause
goto :eof
:opt2
Echo option 2
Pause
goto :eof
但是,更好的方法是:
If %choice% equ 1 echo opt 1
If %choice% equ 2 echo opt 2
如果需要出现更多情况:
If %choice% equ 1 (
echo opt 1
echo do other opt 1 things
)
If %choice% equ 2 (
echo opt 2
echo do something else for opt 2
)
如果仅存在两个选项,请使用if
else
:
If %choice% equ 1 (
echo opt 1
) else (
echo opt 2
)
然后选择最佳
选项
:
choice /c 12 /m "Enter Choice: "
goto :opt%errorlevel%
:opt1
echo choice 1
echo do more for opt 1
goto :eof
:opt1
echo choice 2
echo do more for opt 2
goto :eof
通过另一个绕过2的
goto
。所以你又是唯一的一个了好几次,但你还没有回应任何人,他们花时间给你提供了你所要求的解决方案?哇,男孩<代码>:)批处理不喜欢空白<代码>如果“%choice%”==“1”或者更好的如果%choice eq 1
但是这也取决于%choice%
的来源。@Gerhard:我刚刚复制了海报的代码。那个打字错误是他们的,不是我的。不管怎样,我会修好的。你能给我荣誉吗?:)
choice /c 12 /m "Enter Choice: "
goto :opt%errorlevel%
:opt1
echo choice 1
echo do more for opt 1
goto :eof
:opt1
echo choice 2
echo do more for opt 2
goto :eof