我正在处理以下批处理代码段。我的目标是比较两个值,然后打印相应的消息
CODE SNIPPET
@echo on
setlocal
set test="hello"
if [%test%]==["hello"]
(echo ":mathced")
else ( echo "not matched")
timeout 10
endlocal
pause
但是当我尝试通过cmd.exe运行它时,它会给我错误说
请提供适用于windows7 cmd.exe的答案,并提供批处理文件。
答案 0 :(得分:4)
最好是
@echo on
setlocal
set "test=hello"
if "%test%"=="hello" (
echo matched
) else (
echo not matched
)
timeout 10
endlocal
pause
为变量赋值的双引号应放在" variable = value"否则双引号是指定值的一部分。
IF条件的TRUE分支的开放(IF条件必须与IF关键字在同一行上.ELSE命令必须与关闭在同一行)。 (ELSE分支的开头必须与ELSE关键字在同一行。
答案 1 :(得分:3)
间距就是一切。除了放置一些字符外,您的代码是正确的。开括号需要与条件相同,)
和else
需要在同一条线上。
@echo on
setlocal
set test="hello"
if [%test%]==["hello"] (
echo ":mathced"
) else (
echo "not matched"
)
timeout 10
endlocal
pause