如何使用批处理文件写入文本文件?


192

我需要制作一个可以将一行文本写入批处理文件所在目录中的文本文件的脚本。

Answers:


308

您可以使用echo,然后将输出重定向到文本文件(请参见下面的注释):

rem Saved in D:\Temp\WriteText.bat
@echo off
echo This is a test> test.txt
echo 123>> test.txt
echo 245.67>> test.txt

输出:

D:\ Temp>写文本

D:\ Temp>输入test.txt
这是一个测验
123
245.67

D:\温度>

笔记:

  • @echo off 关闭每个命令到控制台的打印
  • 除非给它指定一个特定的路径名​​,否则使用>>>将重定向到当前目录(正在运行代码的目录)。
  • echo This is a test > test.txt使用一个>覆盖已经有新的内容存在的任何文件。
  • 其余echo语句使用两个>>字符附加到文本文件(添加到),而不是覆盖它。
  • type test.txt简单类型的文件输出到命令窗口。

14
@由于您已经拥有了最后三个标志,因此已经变得多余了@echo off。仅在未关闭回声的情况下才需要使用它们。stackoverflow.com/a/21077142/632951
Pacerier,

119

仅使用一个代码块会更容易,那么您只需要一个重定向。

(
  echo Line1
  echo Line2
  ...
  echo Last Line
) > filename.txt

7
OMG这么简单与它使它中途的人是令人印象深刻,因为脚本是像介绍编程的jibberish世界
格雷格-

这对我不起作用,但是在块`> filename.txt(`确实有效
。– willw将会

2
@willw我想,您的代码块中还会有一个附加的右括号。否则,无论您将重定向放在块的前面还是后面,它都必须起作用
jeb

@jeb可能-我不再拥有原始测试文件,因此无法确定。当然,我后来不得不转义以^)结尾的)字符,这倾向于支持您的假设。尽管如此,至少我们的讨论提醒其他人可能存在陷阱。
willw

23

echo "blahblah"> txt.txt 将删除txt并将blahblah放在该位置

echo "blahblah">> txt.txt 会在txt的新行上写blahblah

我认为如果不存在,两者都会创建一个新的txt(我知道第一个确实存在)

txt.txt上面写有“ ”的地方,如果需要,可以插入文件路径。例如C:\Users\<username>\desktop,它将放到他们的桌面上。


2
是的,两者都是如此。很遗憾,您的答案不会在现有答案中添加其他信息。(提及'%~dp0...)
Stephan

写入同一文件夹中的txt?
达斯·塔特

写入批处理文件所在的文件夹(独立于任何命令cdpushd命令)
Stephan

14
    @echo off

    (echo this is in the first line) > xy.txt
    (echo this is in the second line) >> xy.txt

    exit

这两个>>意味着第二行将添加到文件(即第二行将在xy.txt的最后一行之后开始)。

这是这样的xy.txt样子:

this is in the first line
this is in the second line

5

@echo关闭使用批处理文件颜色0a的标题书写

echo示例文本> Filename.txt echo其他文本>> Filename.txt

@ECHO OFF
Title Writing Using Batch Files
color 0a

echo Example Text > Filename.txt
echo Additional Text >> Filename.txt

4
  • 您可以使用 copy con 用来写长文本
  • 例:

    C:\ COPY CON [驱动器:] [路径] [文件名]

    ....内容

    F6

    已复制1个文件


在批处理文件中,copy con会提示用户。
heringer

3
@echo off

echo Type your text here.

:top

set /p boompanes=

pause

echo %boompanes%> practice.txt

希望这可以帮助。您应该更改字符串名称(IDK称为)和文件名

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.