Batch file 如何将html作为参数传递给批处理程序? 我的目标/问题

Batch file 如何将html作为参数传递给批处理程序? 我的目标/问题,batch-file,cmd,Batch File,Cmd,以下批处理程序可用于显示我的问题: echo first param: %1 third param: %3 echo '%2' 我的目标是为param2获得以下输出(我知道作为最后一个参数会更容易一些,但这不是需要的): 我想知道这是推荐的方法还是有更简单的方法。关于这个问题我读了很多书 引用和最多,但不幸的是两者都没有帮助。如前所述,只有双引号可以用于转义完整参数,但引号本身不能在参数内转义。 如果你仍然坚持在你的论点中使用双引号,双引号似乎是最好的解决方案之一 但是为了以安全的方式获取和

以下批处理程序可用于显示我的问题:

echo first param: %1 third param: %3
echo '%2'
我的目标是为param2获得以下输出(我知道作为最后一个参数会更容易一些,但这不是需要的):

我想知道这是推荐的方法还是有更简单的方法。关于这个问题我读了很多书
引用和最多,但不幸的是两者都没有帮助。

如前所述,只有双引号可以用于转义完整参数,但引号本身不能在参数内转义。
如果你仍然坚持在你的论点中使用双引号,双引号似乎是最好的解决方案之一

但是为了以安全的方式获取和处理参数,您应该切换到延迟扩展,因为延迟扩展的内容不再被解析(与百分比扩展相反)


Windows命令处理器
cmd.exe
仅将
解释为参数字符串分隔符,这是在命令提示窗口中运行
cmd/?
时的帮助输出所解释的。无法使用反斜杠或任何其他字符将
转义为参数字符串中的文字字符。然而,在所有版本的HTML规范中都明确规定,属性值可以使用
。因此,简单的解决方案是使用
demo p1“

MyText

,因为这是100%有效的HTML。当然也可以使用
demo p1”

MyText

并在批处理文件中使用
设置“x=%~2”
设置“x=%x:'=“%”
样式
属性值周围传递HTML代码,并用
在批处理文件中,尽管根据HTML规范不需要。感谢您的帮助,Mofi。我纠正了家庭问题,我认为你关于从“到”的建议从长远来看确实对我有帮助:)
'<body><p style="font-familiy:Arial,Cascadia">MyText</p></body>'
demo p1 "<body><p style=\"font-family:Arial,Cascadia\">MyText</p></body>" p3
demo p1 "<body><p style=""font-family:Arial,Cascadia"">MyText</p></body>" p3
set x=%2
echo '%x:""="%'
set "arg1=%~1"
set "arg2=%~2"
..
setlocal EnableDelayedExpansion
set "arg1=!arg1:""="!"
set "arg2=!arg2:""="!"
echo !arg1! !arg2!