你好,我是一个程序员,制作一个小小的"工具"那使用批处理,我遇到了一个问题,无论如何......当你输入输入时,无论我做什么(或者用户),它都会转到第一个选项。
echo 1) File Explorer
echo.
echo 2) Terminal
echo.
echo 3) Tools
echo.
echo 4) About
echo.
echo 5) Exit
::This is the Main Menu Input Stuff:::::::::::::::;::::
set /P Input = ">"
if /I %Input% EQU "1" goto :FileExplorer
if /I %Input% EQU "2" goto :Terminal
if /I %Input% EQU "3" goto :Tools
if /I %Input% EQU "4" goto :About
if /I %Input% EQU "5" goto :ExitQ
所以我不确定我做错了什么,所以任何帮助都会很好。谢谢 还有一些事情,我检查了拼写错误,然后用else语句重写它,但这只是让它崩溃/退出。
答案 0 :(得分:2)
if /I %Input% EQU "1" goto :FileExplorer
您需要包含引号,因为比较是文字的(并且不需要冒号)
if /I "%Input%" EQU "1" goto FileExplorer
批量只是在线后收费,直到它被告知goto
某处或到达文件结尾,因此如果 none 你的测试通过一个分支导致分支goto
然后执行... equ "5"
之后的下一个语句。我保证以下命令是您的第一个选项,:fileexplorer
aschipfl指出,input
中set
之后的空格很重要,应该删除。这是我的标准模糊:
批处理对SET
语句中的空格敏感。 SET FLAG = N
设置一个名为" FLAG Space "的变量。值为" 空格 N"