如何将大于和小于添加到批处理文件变量中

Axo*_*onn 3 batch-file

当我尝试

@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。

phu*_*clv 6

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)

第二种原因:内引号^失去其特殊含义

如果是引号("),请切换引号标志,如果引号标志处于活动状态,则以下特殊字符不再特殊:^ & | < > ( )

Windows命令解释器(CMD.EXE)如何解析脚本?

一旦将大多数特殊字符(^ & ( ) < > |以及标准定界符, ; = SPACE TAB)置于两者之间"",并且""它们本身也不会成为变量值的一部分,它们就会失去其特殊含义。

批处理文件中的特殊字符


现在,变量将在其中包含值^<BR^>,并将其扩展echo %PTag%

echo ^<BR^>
Run Code Online (Sandbox Code Playgroud)

这是有效的命令


Bal*_*i C 5

只需引用您的set

set "PTag=^<BR^>"
echo %PTag%
Run Code Online (Sandbox Code Playgroud)