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,它确实帮助了我。我只是忘记了“应该以^开头”。另外,感谢您对可变路径的关注。