Bagaimana saya bisa menggunakan file batch untuk menulis ke file teks?

192

Saya perlu membuat skrip yang dapat menulis satu baris teks ke file teks dalam direktori yang sama dengan file batch.

09stephenb
sumber

Jawaban:

309

Anda dapat menggunakan echo, dan mengarahkan output ke file teks (lihat catatan di bawah):

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

Keluaran:

D: \ Temp> WriteText

D: \ Temp> ketik test.txt
Ini adalah sebuah ujian
123
245.67

D: \ Temp>

Catatan:

  • @echo off mematikan pencetakan setiap perintah ke konsol
  • Kecuali Anda memberinya nama jalur tertentu, pengalihan dengan >atau >>akan menulis ke direktori saat ini (direktori kode sedang dijalankan).
  • Yang echo This is a test > test.txtdigunakan >untuk menimpa file apa pun yang sudah ada dengan konten baru.
  • echoPernyataan yang tersisa menggunakan dua >>karakter untuk menambahkan ke file teks (tambahkan ke), bukan menimpanya.
  • The type test.txthanya jenis file output ke jendela perintah.
Ken White
sumber
14
Tiga @tanda terakhir adalah mubazir karena Anda sudah melakukannya @echo off. Mereka hanya diperlukan jika gema belum dimatikan. stackoverflow.com/a/21077142/632951
Pacerier
119

Lebih mudah menggunakan hanya satu blok kode, maka Anda hanya perlu satu redirection.

(
  echo Line1
  echo Line2
  ...
  echo Last Line
) > filename.txt
jeb
sumber
7
OMG sangat sederhana & menjadikannya setengah manusia yang mengesankan karena scripting seperti intro ke dunia pemrograman jibberish
gregg
Ini tidak berfungsi untuk saya, tetapi variasi dengan pengalihan di depan blok `> filename.txt (` berhasil.
willw
2
@ akan saya kira, ada tanda kurung penutup tambahan di suatu tempat di blok kode Anda. Mari kita harus bekerja, terlepas jika Anda meletakkan pengalihan di depan atau setelah blok
jeb
@ jeb Mungkin - Saya tidak lagi memiliki file pengujian asli saya, jadi tidak bisa memastikan. Tentu saja saya kemudian harus lolos dari penutupan) karakter sebagai ^), yang cenderung mendukung hipotesis Anda. Namun, setidaknya diskusi kita memberi tahu orang lain tentang kemungkinan jebakan.
willw
23

echo "blahblah"> txt.txt akan menghapus txt dan menempatkan blahblah di tempatnya

echo "blahblah">> txt.txt akan menulis blahblah di baris baru di txt

Saya pikir keduanya akan membuat txt baru jika tidak ada (saya tahu yang pertama)

Di mana " txt.txt" ditulis di atas, jalur file dapat dimasukkan jika diinginkan. misalnya C:\Users\<username>\desktop, yang akan meletakkannya di desktop mereka.

Darth Tater
sumber
2
ya, itu benar untuk keduanya. Sayangnya jawaban Anda tidak menambahkan informasi tambahan ke jawaban yang ada. (Disebutkan '%~dp0akan ...)
Stephan
menulis ke txt di folder yang sama?
Darth Tater
untuk menulis ke dalam folder, di mana batchfile berada (terlepas dari perintah cdatau pushdperintah apa pun )
Stephan
14
    @echo off

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

    exit

Keduanya >>berarti bahwa baris kedua akan ditambahkan ke file (yaitu baris kedua akan dimulai setelah baris terakhir xy.txt).

seperti inilah xy.txttampilannya:

this is in the first line
this is in the second line
Organ
sumber
5

@echo off Menulis Judul menggunakan File Batch warna 0a

echo Contoh Teks> Filename.txt gema Teks Tambahan >> Filename.txt

@ECHO OFF
Title Writing Using Batch Files
color 0a

echo Example Text > Filename.txt
echo Additional Text >> Filename.txt
Kartu as
sumber
4
  • Anda dapat menggunakannya copy con untuk menulis teks yang panjang
  • Contoh:

    C: \ COPY CON [drive:] [path] [Nama file]

    .... Kandungan

    F6

    1 file disalin

Pham Thanh
sumber
Dalam file batch, salin perintah meminta pengguna.
heringer
3
@echo off

echo Type your text here.

:top

set /p boompanes=

pause

echo %boompanes%> practice.txt

semoga ini membantu. Anda harus mengubah nama string (IDK apa namanya) dan nama file

John Caleb Garon
sumber