使用多行代码将字符串转换为.txt文件 - 使用Windows批处理文件

Lin*_*int 49 windows shell batch-file

我正在尝试创建一个Windows批处理文件来创建一个包含多行的.txt.我已经尝试了几种解决方案在字符串中插入换行但无济于事.还有其他类似的问题/答案,但没有一个解决将整个字符串放入文本文件.

我的批处理文件当前是:

echo Here is my first line
Here is my second line > myNewTextFile.txt
pause
Run Code Online (Sandbox Code Playgroud)

我的目标是读取文本文件:

Here is my first line
Here is my second line
Run Code Online (Sandbox Code Playgroud)

显然,这目前不起作用,但想知道是否有人知道如何以简单的方式实现这一点?

End*_*oro 80

(
echo Here is my first line
echo Here is my second line
echo Here is my third line
)>"myNewTextFile.txt"
pause
Run Code Online (Sandbox Code Playgroud)

  • 引号不是必需的,但是当文件名或完整路径中有`&`或空格字符时,这是很好的做法.您还会发现在使用此解决方案时,需要像在`^)`中那样转义结束括号. (9认同)
  • @Bob Brackets 是所有这些标记的通用术语(包括括号,当然可以称为“圆括号”)。使用没有限定条件的“括号”来表示方括号 [] 只在美国很常见(在那里甚至不普遍),而在英式英语中则表示圆括号 ()。这对任何 IMO 都更有意义,因为在计算之外,最常用的括号是圆形的。在任何情况下,直接输入类型(方形、圆形、卷曲)并明确输入它们肯定是有意义的,而不是冒着混淆的风险。 (3认同)
  • 不幸的是,这不起作用,当括号 '(' 在要回显的文本中时。> 和 >> 的解决方案仍然有效。 (2认同)

Ken*_*ite 21

只需在第一个之后重复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
Run Code Online (Sandbox Code Playgroud)

  • 接受的答案对我不起作用,而这个答案对我有用。 (2认同)

小智 7

在寻找其他东西时,我偶然发现了这个同时存在的老问题,我认为还有一个值得一提的小技巧。

所有解决方案都存在空行问题,以及当一行以 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
Run Code Online (Sandbox Code Playgroud)

现在,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
Run Code Online (Sandbox Code Playgroud)

而 file2.txt 包含:

Next line is empty

/? this line starts with /?
Last line
Run Code Online (Sandbox Code Playgroud)

使用echo:奇迹般的解决了file1.txt中输出的问题。

除了冒号,您还可以“粘贴”到其他字符echo,其中包括点、斜线、... 自己尝试。