在MS-DOS中向文本文件添加新行

49
我正在制作一个.bat文件,希望能够将ASCII艺术写入文本文件中。
当我使用echo命令输出文本时,我找到了向文件追加新行的命令,但是当我读取该文本文件时,我看到的只是一个布局符号而不是空格。我认为通过使用Word甚至WordPad打开该文件可以解决这个问题,但我希望它在任何计算机上都能工作,即使该计算机只有Notepad(这种情况很常见)。
如何在特定程序(例如WordPad)中打开文本文件或向文件写入适当的空格字符?

编辑:

我发现最好的方法是使用:

echo <line1> > <filename>
echo <line2> >> <filename>

附言:我在我的ASCII艺术中使用了|,所以它崩溃了,真蠢啊蠢啊蠢啊:)


1
很抱歉,这个问题需要严肃地重新表述,并提供一些输入/输出/代码示例。你的问题让我有些困惑了... - Tomalak
1
哇,你真是无处不在。很难理解你在问什么。尽可能用简洁的语言提出明确的问题。同时,提供一个包含你现在所做的示例会有所帮助。 - user1228
1
“当它写入txt文件时,我只看到一个布局符号而不是空格”,这让我头疼。 - user1228
6个回答

92
echo Hello, > file.txt
echo.       >>file.txt
echo world  >>file.txt

而且您可以随时运行:

wordpad file.txt

在任何Windows版本上。
在 Windows 2000 及以上版本中,您可以执行以下操作:
( echo Hello, & echo. & echo world ) > file.txt

另一种在少量文本中显示信息的方法是创建一个名为file.vbs的文件,其中包含:

Msgbox "Hello," & vbCrLf & vbCrLf & "world", 0, "Message"

使用以下方式调用

cscript /nologo file.vbs

如果您不需要等待用户点击“确定”按钮,可以使用wscript


你写的信息存在问题,竖线(|)是"管道"运算符。你需要使用^|来转义,而不是|

P.S.正确拼写为Pwned


我没意识到那会换行!太棒了 :) - billyy
是的,我注意到我可以这样做,但我试图保持它紧凑,你知道,只创建文件,否则它就会复制它 :) 但是现在只使用一次写入的方法是不可能的,对吧? - billyy
1
应该有一个粗体警告,提示>会覆盖整个文件内容 :) - Adelin

13
你可以使用重定向字符两次 (>>) 轻松地将内容追加到文件的末尾。
这将复制 source.txtdestination.txt,在此过程中覆盖目标文件。
type source.txt > destination.txt

这将把 source.txt 复制到 destination.txt,在此过程中追加到目标文件中:

type source.txt >> destination.txt

实际上很棘手,我只想创建文件,而不是复制。否则,我可以先打开文件而不创建它,但我认为尽可能紧凑更好。 - billyy

12

也许这就是你想要的?

echo foo > test.txt
echo. >> test.txt
echo bar >> test.txt

结果在test.txt文件中如下:

foo

bar


是的,我认为这将是最好的方法,我可能会编辑文件以创建一个能够将其分成多个部分的命令... 至少我会尝试一下 ;) - billyy

2
请使用以下内容:
echo (text here) >> (name here).txt

例如:echo 我的名字是Jeff >> test.txt

test.txt

my name is jeff

你也可以在脚本中使用它。


2
echo "text to echo" > file.txt

这只会创建一个命令,并在其上写一行代码,但不会换行 ;) - billyy

1
我总是使用 copy con 来写文本,这样很容易写出长文本。
例如:
C:\COPY CON [驱动器:][路径][文件名]
.... 内容
F6
1 个文件已被复制

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接