每当我提供任何输入时,代码总是执行第一个IF语句中的任何代码。因此,如果我输入" console clear" ,它将执行" console help" 的代码。
:: USER INPUT
:user_input
SET /P _userInput = ">"
ECHO "%_userInput%"
GOTO :check_command
:: COMMANDS
:check_command
:: CONSOLE COMMANDS
IF /I "%_userInput%" EQU "console help" {
GOTO :console_help
}
IF /I "%_userInput%" EQU "console clear" {
GOTO :console_clear
}
答案 0 :(得分:0)
试试吧!
REM USER INPUT
:user_input
SET /P "_userInput=>"
ECHO "%_userInput%"
GOTO :check_command
REM COMMANDS
:check_command
REM CONSOLE COMMANDS
IF /I "%_userInput%"=="console help" (
GOTO :console_help
)
IF /I "%_userInput%"=="console clear" (
GOTO :console_clear
)
您正在设置变量:
_userInput space
所以您必须使用:
ECHO "%_userInput %"
此外,您应该使用括号()
而不是大括号,{}
和EQU
更多地用于数字比较,仅使用==
是更常见的用法。