Batch file 如何将大于和小于添加到批处理文件变量中
当我尝试Batch file 如何将大于和小于添加到批处理文件变量中,batch-file,Batch File,当我尝试 @echo off set PTag=^<BR^> echo %PTag% 如果我删除@echo off,那么它实际上会输出 echo <BR> echo 我想在变量中添加各种HTML标记,然后连接这些变量以创建一个HTML,并将其输出到一个文件中。只需引用您的集: set "PTag=^<BR^>" echo %PTag% 设置“PTag=^” 回声%PTag% set PTag=^将值设置为PTag 运行echo%PTag%时,它会扩展到
@echo off
set PTag=^<BR^>
echo %PTag%
如果我删除@echo off,那么它实际上会输出
echo <BR>
echo
我想在变量中添加各种HTML标记,然后连接这些变量以创建一个HTML,并将其输出到一个文件中。只需引用您的
集
:
set "PTag=^<BR^>"
echo %PTag%
设置“PTag=^”
回声%PTag%
set PTag=^
将值
设置为PTag
运行echo%PTag%
时,它会扩展到echo
,这是无效的重定向。您需要使用此命令来转义内的
PTag
set PTag=^^^<BR^^^>
第二种方式的原因:内部引号
^
失去了它的特殊意义
如果是引号(“
)则切换引号标志,如果引号标志处于活动状态,则以下特殊字符不再特殊:^&<>()
大多数特殊字符(^
(
)
)以及标准分隔符,
;
空格选项卡)一旦被置于“
”和之间,就会失去其特定的含义“
本身不会成为变量值的一部分
现在,变量内部将有值^
,它将echo%PTag%
扩展到
echo ^<BR^>
echo^
这是一个有效的命令显示变量值时只需使用延迟展开:
@echo off
setlocal EnableDelayedExpansion
set "PTag=<BR>"
echo !PTag!
@echo关闭
setlocal EnableDelayedExpansion
设置“PTag=
”
回声!PTag!
谢谢。你能补充一下关于答案的解释吗?我在批处理方面不是很好,因为这可能是显而易见的,因为我不知道引号可以用来包装作业。更确切地说,我不明白为什么转义字符在引号中工作。什么时候应该决定在命令参数周围使用引号?既然你提到了它,我不完全确定为什么,我只知道它是有效的:)关于转义字符和行继续字符,我想,这个链接可能会给你一个更好的解释
echo ^<BR^>
@echo off
setlocal EnableDelayedExpansion
set "PTag=<BR>"
echo !PTag!