ฉันจะใช้ไฟล์แบตช์เพื่อเขียนไปยังไฟล์ข้อความได้อย่างไร


192

ฉันต้องสร้างสคริปต์ที่สามารถเขียนข้อความหนึ่งบรรทัดไปยังไฟล์ข้อความในไดเรกทอรีเดียวกันกับไฟล์แบตช์

คำตอบ:


309

คุณสามารถใช้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> WRITETEXT

D: \ Temp> พิมพ์ test.txt
นี่คือการทดสอบ
123
245.67

D: \ Temp>

หมายเหตุ:

  • @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
@ จะคิดว่ามีวงเล็บปิดเพิ่มเติมที่ใดที่หนึ่งในบล็อกรหัสของคุณเปิดใช้งานไม่ว่าคุณจะทำการเปลี่ยนเส้นทางไปข้างหน้าหรือหลังบล็อก
20292

@jeb เป็นไปได้ - ฉันไม่มีไฟล์ทดสอบดั้งเดิมอีกต่อไปดังนั้นไม่แน่ใจ แน่นอนฉันต้องหลบหนีปิด) ตัวละครในฐานะ ^) ซึ่งมีแนวโน้มที่จะสนับสนุนสมมติฐานของคุณ อย่างไรก็ตามอย่างน้อยการสนทนาของเราก็เตือนผู้อื่นถึงกับดัก
willw

23

echo "blahblah"> txt.txt จะลบ txt และวาง blahblah ไว้ในนั้น

echo "blahblah">> txt.txt จะเขียน blahblah ในบรรทัดใหม่ใน txt

ฉันคิดว่าทั้งสองจะสร้าง txt ใหม่หากไม่มีอยู่ (ฉันรู้ว่าตัวแรกทำ)

โดยที่ " txt.txt" เขียนไว้ด้านบนเส้นทางของไฟล์สามารถแทรกได้ถ้าต้องการ เช่นC:\Users\<username>\desktopซึ่งจะวางไว้บนเดสก์ท็อป


2
ใช่มันเป็นความจริงสำหรับทั้งคู่ น่าเศร้าที่คำตอบของคุณไม่ได้เพิ่มข้อมูลเพิ่มเติมให้กับคำตอบที่มีอยู่ (เอ่ยถึง'%~dp0... )
Stephan

การเขียนไปยัง txt ในโฟลเดอร์เดียวกัน
Darth Tater

ที่จะเขียนลงในโฟลเดอร์ที่อยู่ batchfile (อิสระใด ๆcdหรือpushdคำสั่ง)
สเตฟาน

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 off การเขียนหัวเรื่องด้วย Batch Files color 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 ไฟล์


ในแบตช์ไฟล์ให้คัดลอกข้อความแจ้งเตือนผู้ใช้
heringer

3
@echo off

echo Type your text here.

:top

set /p boompanes=

pause

echo %boompanes%> practice.txt

หวังว่านี่จะช่วยได้ คุณควรเปลี่ยนชื่อสตริง (IDK ที่เรียกว่าอะไร) และชื่อไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.