Làm cách nào tôi có thể sử dụng tệp bó để ghi vào tệp văn bản?


191

Tôi cần tạo một tập lệnh có thể ghi một dòng văn bản vào một tệp văn bản trong cùng thư mục với tệp bó.

Câu trả lời:


307

Bạn có thể sử dụng echovà chuyển hướng đầu ra sang tệp văn bản (xem ghi chú bên dưới):

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

Đầu ra:

D: \ Temp> WriteText

D: \ Temp> gõ test.txt
Đây là một bài kiểm tra
123
245,67

D: \ Nhiệt độ>

Ghi chú:

  • @echo off tắt in từng lệnh sang bàn điều khiển
  • Trừ khi bạn đặt cho nó một tên đường dẫn cụ thể, chuyển hướng có >hoặc >>sẽ ghi vào thư mục hiện tại (thư mục mã đang được chạy).
  • Việc echo This is a test > test.txtsử dụng một >để ghi đè lên bất kỳ tệp nào đã tồn tại với nội dung mới.
  • Các echocâu lệnh còn lại sử dụng hai >>ký tự để nối vào tệp văn bản (thêm vào), thay vì ghi đè lên nó.
  • Đơn type test.txtgiản chỉ cần gõ đầu ra tập tin vào cửa sổ lệnh.

14
Ba @dấu hiệu cuối cùng là dư thừa vì bạn đã có @echo off. Chúng chỉ cần thiết nếu tiếng vang chưa được tắt. stackoverflow.com/a/21077142/632951
Pacerier

119

Việc sử dụng chỉ một khối mã sẽ dễ dàng hơn, sau đó bạn chỉ cần một lần chuyển hướng.

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

7
OMG rất đơn giản và nó khiến nó trở thành con người nửa vời, rất ấn tượng vì kịch bản giống như phần giới thiệu của thế giới lập trình vui
nhộn

Điều này không hiệu quả với tôi, nhưng một biến thể với chuyển hướng ở phía trước khối `> filename.txt (` đã hoạt động.
sẽ

2
@willw Tôi cho rằng, có một dấu ngoặc đơn đóng thêm ở đâu đó trong khối mã của bạn. Hãy để nó hoạt động, bất kể bạn đặt chuyển hướng ở phía trước hay sau khối
jeb

@jeb Có thể - Tôi không còn có tệp kiểm tra gốc của mình, vì vậy không thể chắc chắn. Chắc chắn sau đó tôi đã phải thoát khỏi việc đóng) các ký tự như ^), điều này sẽ có xu hướng ủng hộ giả thuyết của bạn. Tuy nhiên, ít nhất cuộc thảo luận của chúng tôi cảnh báo người khác về một cái bẫy có thể.
sẽ

23

echo "blahblah"> txt.txt sẽ xóa txt và đặt blahblah vào vị trí của nó

echo "blahblah">> txt.txt sẽ viết blahblah trên một dòng mới trong txt

Tôi nghĩ rằng cả hai sẽ tạo ra một txt mới nếu không tồn tại (tôi biết rằng cái đầu tiên không tồn tại)

Trong đó " txt.txt" được viết ở trên, một đường dẫn tệp có thể được chèn nếu muốn. ví dụ C:\Users\<username>\desktop, sẽ đặt nó trên máy tính để bàn của họ.


2
vâng, điều đó đúng cho cả hai. Đáng buồn thay, câu trả lời của bạn không thêm thông tin bổ sung vào các câu trả lời hiện có. (Đề cập đến '%~dp0...)
Stephan

để ghi vào một txt trong cùng một thư mục?
Darth Tater

để ghi vào thư mục, nơi tập tin batchfile (không phụ thuộc vào bất kỳ cdhoặc pushdlệnh nào)
Stephan

14
    @echo off

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

    exit

Cả hai >> có nghĩa là dòng thứ hai sẽ được thêm vào tệp (tức là dòng thứ hai sẽ bắt đầu sau dòng cuối cùng của xy.txt).

Đây là cách xy.txttrông như thế nào:

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

5

@echo tắt Tiêu đề Viết bằng Batch Files màu 0a

echo Ví dụ văn bản> Filename.txt echo Văn bản bổ sung >> Filename.txt

@ECHO OFF
Title Writing Using Batch Files
color 0a

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

4
  • Bạn có thể dùng copy con để viết một văn bản dài
  • Thí dụ:

    C: \ COPY CON [ổ đĩa:] [đường dẫn] [Tên tệp]

    .... Nội dung

    F6

    1 tập tin được sao chép


Trong một tệp bó, sao chép con nhắc người dùng.
heringer

3
@echo off

echo Type your text here.

:top

set /p boompanes=

pause

echo %boompanes%> practice.txt

hi vọng điêu nay co ich. bạn nên thay đổi tên chuỗi (IDK tên của nó) và tên tệp

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.