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

时间:2017-04-11 14:41:00

标签: batch-file

当我尝试

@echo off
set PTag=^<BR^>
echo %PTag%

我一无所获。

现在有趣的是,如果在最后一个回声之后有一个空行,我得到:

The syntax of the command is incorrect.

如果我删除@echo,那么它实际输出

echo <BR>

我想在变量中添加各种HTML标记,然后连接这些变量以创建我将在文件中输出的HTML。

3 个答案:

答案 0 :(得分:3)

引用您的set

set "PTag=^<BR^>"
echo %PTag%

答案 1 :(得分:3)

set PTag=^<BR^>将值<BR>设置为PTag

当您运行echo %PTag%时,它会扩展为echo <BR>,这是无效的重定向。您需要使用此

来转义< >内的PTag
set PTag=^^^<BR^^^>

第一个^自行逃脱,然后下一个逃脱<>

您也可以使用此

set "PTag=^<BR^>"

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

  

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

     

How does the Windows Command Interpreter (CMD.EXE) parse scripts?

  

大多数特殊字符(^ & ( ) < > |以及标准分隔符{{1 }} , ; SPACE TAB )只要在=""之间放置它们的特定含义{1}}本身不会成为变量值的一部分

     

Special Characters in Batch File

现在变量里面会有""个值,它会将^<BR^>扩展为

echo %PTag%

这是一个有效的命令

答案 2 :(得分:1)

显示变量值时,只需使用延迟扩展:

@echo off
setlocal EnableDelayedExpansion

set "PTag=<BR>"
echo !PTag!