使用多行将字符串回显到 .txt 文件 - 使用 Windows 批处理文件
Posted
技术标签:
【中文标题】使用多行将字符串回显到 .txt 文件 - 使用 Windows 批处理文件【英文标题】:Echo string to .txt file with multiple lines - with Windows Batch file 【发布时间】:2014-06-25 04:18:57 【问题描述】:我正在尝试创建一个 Windows 批处理文件,该文件创建一个包含多行的 .txt。我尝试了几种解决方案来在字符串中插入换行符,但无济于事。还有其他类似的问题/答案,但没有一个解决将整个字符串放入文本文件的问题。
我的批处理文件当前读取:
echo Here is my first line
Here is my second line > myNewTextFile.txt
pause
我的目标是读取文本文件:
Here is my first line
Here is my second line
显然,这目前不起作用,但想知道是否有人知道如何以简单的方式实现这一点?
【问题讨论】:
【参考方案1】:(
echo Here is my first line
echo Here is my second line
echo Here is my third line
)>"myNewTextFile.txt"
pause
【讨论】:
这项工作做得非常好,但为了将来参考,文件名周围的“引号”标记最终没有必要了。 引号不是必需的,但很好的做法,因为&
或空格字符在文件名或完整路径中。您还会发现在使用此解决方案时,需要像 ^)
一样对右括号进行转义。
不幸的是,当括号'('在要回显的文本中时,这不起作用。> 和 >> 的解决方案仍然有效。
为了在对话中清晰起见,无需键入“(”、“[”、“”...这些字符的正确术语是:括号:() 括号,或方括号:[] 大括号或花括号:
@Bob Brackets 是所有这些标记的通用术语(包括括号,当然可以称为“圆括号”)。使用没有限定条件的“括号”专门表示方括号 [] 仅在美国很常见(甚至在那儿也不是通用的),而在英式英语中则表示圆括号 ()。这对任何 IMO 都更有意义,因为在计算之外,最常用的括号以巨大的边距舍入。在任何情况下,只输入类型(方形、圆形、卷曲)并明确输入它们当然是有意义的,而不是冒着混淆的风险。【参考方案2】:
只需在第一行之后重复echo
和>>
。 >>
表示它应该附加到文件而不是创建新文件(或覆盖现有文件):
echo Here is my first line > myNewTextFile.txt
echo Here is my second line >> myNewTextFile.txt
echo Here is my third line >> myNewTextFile.txt
pause
【讨论】:
最后的pause
命令是必需的,还是只是因为OP 在他的脚本中有它而添加的?
@AdityaVikasDevarapalli:它就在那里,因为它在海报的代码中。它不是必需的。
这个接受的答案对我不起作用。
注意这会在行尾写空格,因为最后一个单词和>
之间有一个空格。通常不是问题,但有一些机器可读文件的问题。从源代码中删除空格进行修复。【参考方案3】:
在寻找其他东西时,我偶然发现了这个同时存在的老问题,我认为还有一个值得一提的小技巧。
所有解决方案都存在空行问题以及当行以 echo 命令本身的选项开头时。比较这些示例中的输出文件:
call :data1 >file1.txt
call :data2 >file2.txt
exit /b
:data1
echo Next line is empty
echo
echo /? this line starts with /?
echo Last line
exit /b
:data2
echo:Next line is empty
echo:
echo:/? this line starts with /?
echo:Last line
exit /b
现在,file1.txt 包含:
Next line is empty
ECHO is off.
Displays messages, or turns command-echoing on or off.
ECHO [ON | OFF]
ECHO [message]
Type ECHO without parameters to display the current echo setting.
Last line
虽然 file2.txt 包含:
Next line is empty
/? this line starts with /?
Last line
echo:
的使用奇迹般地解决了 file1.txt 中的输出问题。
除了冒号之外,您还可以将其他字符“粘贴”到echo
,其中包括点、斜线……您自己试试吧。
【讨论】:
很高兴知道冒号也可以工作,我认为记录的版本是echo.
和echo./? whatever
中的点【参考方案4】:
第 1 步:输入第 1 行,后跟 ^ 字符。
echo Here is my first line^
第 2 步:按 RETURN 键以提示输入更多文本
echo Here is my first line^
More?
第 3 步:再次按 RETURN 键以获得更多文本的第二个提示
echo Here is my first line^
More?
More?
第 4 步:从第二个提示继续第 2 行
echo Here is my first line^
More?
More? Here is my second line
第 5 步:按 RETURN 键,将 2 个语句显示在两个单独的行中
结果:
echo Here is my first line^
More?
More? Here is my second line
Here is my first line
Here is my second line
注意 但是,如果您希望将其保存到文件中,您可以添加最终步骤。 第 6 步:在 > 字符的帮助下,您可以附加文件名,以便将输出保存到文件中。
echo Here is my first line^
More?
More? Here is my second line >"myNewTextFile.txt"
Example from CMD
【讨论】:
以上是关于使用多行将字符串回显到 .txt 文件 - 使用 Windows 批处理文件的主要内容,如果未能解决你的问题,请参考以下文章