批量处理字符串中有%的问题

时间:2016-03-17 20:43:14

标签: batch-file

我一直在尝试处理一个批处理文件,该文件最终将用于读取包含%的文本。在使用包含%的变量进行一些测试时,我发现我遇到了某种错误,但窗口正在快速接近。

导致错误的原因是什么?

测试代码

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

1 个答案:

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