Batch file “中的语法错误”;如果;批处理语句

Batch file “中的语法错误”;如果;批处理语句,batch-file,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 有人能告诉我为什

下面的代码中有一个语法错误

@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

有人能告诉我为什么吗?

你需要用
^
字符转义

if !value!==[^"] (
    echo success
)
否则,batch会认为您正在启动一个字符串,这会破坏代码的其余部分


(请注意,
path
已经作为一个系统变量存在;我建议为您的代码使用不同的变量。)

谢谢Dark,它确实帮助了我。我只是忘记了“应该以^开头”。另外,感谢您对可变路径的关注。