我一直在尝试处理一个批处理文件,该文件最终将用于读取包含%的文本。在使用包含%的变量进行一些测试时,我发现我遇到了某种错误,但窗口正在快速接近。
导致错误的原因是什么?
测试代码
SET WIN="55.23%:"
echo %WIN%
:: This shows WIN but without the % on it, which I think is causing the error later on
SET TESTING=%WIN:~3%
echo %TESTING%
pause
答案 0 :(得分:2)
尝试:
SET "WIN=55.23%%:"
您的方法存在问题:
(在脚本中)您必须双 %
个字符。将它们视为文字(不加倍,如果%
不是有效的环境变量引用的一部分,则只需删除)。< / p>
您放置双引号的地方 - 仅限于RHS - 导致它们成为值的一部分;说明:
SET "WIN=55.23%%:"
:: %WIN% now contains >>>55.23%<<<
SET WIN="55.23%%:"
:: %WIN% now contains >>>"55.23%"<<< - INCLUDING the DOUBLE QUOTES