当我尝试
时@echo off
set PTag=^<BR^>
echo %PTag%
我一无所获。
现在有趣的是,如果在最后一个回声之后有一个空行,我得到:
The syntax of the command is incorrect.
如果我删除@echo,那么它实际输出
echo <BR>
我想在变量中添加各种HTML标记,然后连接这些变量以创建我将在文件中输出的HTML。
答案 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}}本身不会成为变量值的一部分
现在变量里面会有""
个值,它会将^<BR^>
扩展为
echo %PTag%
这是一个有效的命令
答案 2 :(得分:1)
显示变量值时,只需使用延迟扩展:
@echo off
setlocal EnableDelayedExpansion
set "PTag=<BR>"
echo !PTag!