我想在文件中使用Batch写"
签名。
echo| set /p=""" >> abc.txt
这不能按预期工作,因为在向我的文件发送数据时会出错。
有什么想法吗?
答案 0 :(得分:4)
您的想法“三引号”的想法还不错。但是由于报价受损,解析器无法正确处理它。您必须转义其中之一(外面的一个-逃避中间的一个不起作用):
<nul set /p =^""" >> abc.txt
或
<nul set /p =""^" >> abc.txt
this详细介绍cmd
的解析方式。
我还用echo| set /p...
更改了<nul set /p
,速度更快。管道生成两个新的cmd
进程,因为管道的每一侧都在单独的进程中运行,这会花费时间。
答案 1 :(得分:0)
这应该为您添加单引号https://www.example.com/en/signup/ // will match this url
https://www.example.com/en/signup/?type=xyz // will match for xyz
https://www.example.com/en/signup/?type=abc // will match for abc
https://www.example.com/en/signup/?type=other // will not match for any other values
带来预期的结果:
"
这将产生双引号echo| set /p=^""^">>abc.txt
""
为了分解起见,我们用引号echo| set /p=^"""^">>abc.txt
和右引号之间的期望结果进行转义,这些示例在括号中显示了期望的结果,而转义的^"
则用括号{{1 }}或"
简而言之,只要中间的双引号都被转义,无论您要多少双引号都可以。
因此,如果您确实这样做,请使用上述带括号的示例:
^"(")^"
它只会返回^"("")^"
注意,与使用echo echo| set /p=^"(")^"
的@stephan解决方案相比,使用(")
时的解析不同,因为管道将启动第二个进程,而echo|
则不是。 / p>