当我尝试
@echo off
set PTag=^<BR^>
echo %PTag%
Run Code Online (Sandbox Code Playgroud)
我什么都没有。
现在有趣的是,如果在最后一个回显之后有一个空行,我将得到:
The syntax of the command is incorrect.
Run Code Online (Sandbox Code Playgroud)
如果我删除@echo,那么它实际上输出
echo <BR>
Run Code Online (Sandbox Code Playgroud)
我想在变量内添加各种HTML标记,然后将这些变量连接起来以创建将在文件中输出的HTML。
set PTag=^<BR^>将值设置<BR>为PTag
运行时,echo %PTag%它将扩展到echo <BR>无效重定向。您需要使用此方法来逃离<and >内部PTag
set PTag=^^^<BR^^^>
Run Code Online (Sandbox Code Playgroud)
第一个^自己逃脱,然后下一个逃脱<或>
你也可以用这个
set "PTag=^<BR^>"
Run Code Online (Sandbox Code Playgroud)
第二种原因:内引号^失去其特殊含义
如果是引号(
"),请切换引号标志,如果引号标志处于活动状态,则以下特殊字符不再特殊:^ & | < > ( )。
一旦将大多数特殊字符(
^&()<>|以及标准定界符,;=SPACE TAB)置于两者之间"",并且""它们本身也不会成为变量值的一部分,它们就会失去其特殊含义。
现在,变量将在其中包含值^<BR^>,并将其扩展echo %PTag%为
echo ^<BR^>
Run Code Online (Sandbox Code Playgroud)
这是有效的命令