批处理文件未根据用户输入执行正确的 IF 语句



每当我给出任何输入时,代码总是执行第一个 IF 语句中的任何代码。因此,如果我输入"控制台清除",它将执行"控制台帮助">的代码。

:: 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
}

试试这个吧!

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空间
,因此您必须使用:
ECHO "%_userInput %"

此外,您应该使用括号()而不是大括号,{}EQU更用于数字比较,只是使用==是更常见的用法。

相关内容

  • 没有找到相关文章

最新更新