windows - 如何写入包含双引号而不换行的文件文本

标签 windows batch-file cmd

我需要将以下字符串(不带换行符)写入新文件:

R"(

我已经尝试过:

echo|set /p = R"( > ..\web\index.min.html
echo|set /p = R^"( > ..\web\index.min.html
echo|set /p = R\"( > ..\web\index.min.html

没有结果。

但是如果我写:

echo|set /p = R""( > ..\web\index.min.html

我得到:

R""(

两个双引号而不是一个。 我该如何解决我的问题?

最佳答案

一般来说,使用 <nul set /p =text 更好、更高效。而不是echo|set /p =text

SET/P 提示符有 bizarre rules Windows 版本之间不一致:(

最好将所有重定向放在命令之前,以便 = 之后的所有字符是提示的一部分,但规则中引用的情况除外。

棘手或导致问题的事情是导致空白,导致 = ,以及引号。

值得庆幸的是,引用可以很容易地解决。将所需的字符串括在 = 的右侧用引号引起来:

<nul >..\web\index.min.html set /p ="R"("

第一个引号将被删除,最后一个引号以及最后一个引号之后的所有尾随字符都将被删除。

或者执行上述操作,并在整个构造周围添加一组额外的引号,包括 = :

<nul >..\web\index.min.html set /p "="R"(""

前两个引号被删除,最后两个引号也被删除,并且第二个到最后一个引号之后的所有字符都被忽略。

我不推荐这样做,但以下每个方法也可以:

<nul >..\web\index.min.html set /p ="R"(" IGNORED
<nul >..\web\index.min.html set /p "="R"(" IGNORED " IGNORED

关于windows - 如何写入包含双引号而不换行的文件文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58329532/

相关文章:

batch-file - 用于重新启动服务的批处理文件。 window

windows - 运行批处理文件,运行 PowerShell 文件,运行批处理文件...以管理员身份

c# - 在进行备份时使用目录的 Last Modified 时间戳是否可靠?

windows - Powershell 调用在服务器上有效,但通过 jenkins 返回错误

java - 添加一个jar文件到环境变量windows 8

image-processing - Imagemagick 'convert' : how to simply create thumbnails for a folder of images and retain their filename?

batch-file - 批处理 : Why does appending a textfile write "ECHO is off" instead?

sockets - Windows命令行程序,列出某些进程的打开套接字

windows - 在 Windows/DOS 批处理文件中使用逗号时出现意外的命令行行为

ruby - 命令提示符中的系统变量路径不同