Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何将大于和小于添加到批处理文件变量中_Batch File - Fatal编程技术网

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!