如何将双引号回传到文件中而无需在批处理中添加新行?

时间:2019-05-20 09:22:00

标签: batch-file cmd echo

我想在文件中使用Batch写"签名。

echo| set /p=""" >> abc.txt

这不能按预期工作,因为在向我的文件发送数据时会出错。

有什么想法吗?

2 个答案:

答案 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>