批处理中“if”语句中的语法错误

时间:2015-01-06 04:17:52

标签: batch-file

我使用以下代码时出现语法错误。

@echo off
SETLOCAL EnableDelayedExpansion
set path=%1
set value=[%path:~-1%]
echo !value!
if !value!==[\] (
    echo success
)

if !value!==["] (
    echo success
)

这样会出现语法错误:

%1="C:\batch\test"

虽然这样做效果很好:

%1=C:\batch\test

谁能告诉我为什么?

1 个答案:

答案 0 :(得分:0)

您需要使用"字符转义^

if !value!==[^"] (
    echo success
)

否则批处理认为你正在启动一个字符串,这会破坏你的其余代码。

(在一个不相关的说明中,path已作为系统变量存在;我建议为您的代码使用不同的变量。)