在批处理文件中匹配两个字符串时出错

时间:2014-12-09 06:31:11

标签: batch-file cmd

我正在处理以下批处理代码段。我的目标是比较两个值,然后打印相应的消息

CODE SNIPPET

@echo on 
setlocal

set test="hello"
if [%test%]==["hello"]
(echo ":mathced")
else ( echo "not matched")

timeout 10
endlocal
pause 

但是当我尝试通过cmd.exe运行它时,它会给我错误

enter image description here

请提供适用于windows7 cmd.exe的答案,并提供批处理文件。

2 个答案:

答案 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