.bat เพื่อวนซ้ำโฟลเดอร์และต่อท้ายไฟล์ข้อความ

ฉันต้องการตั้งค่าไฟล์แบตช์แบบง่ายที่จะวนซ้ำไฟล์ .txt ทั้งหมดในโฟลเดอร์ (โฟลเดอร์ที่วางไฟล์แบตช์) และเพิ่มบรรทัดหัวเรื่องเดียวกันให้กับแต่ละไฟล์เหล่านั้น บรรทัดหัวเรื่องถูกกำหนดไว้ในไฟล์ข้อความแยกต่างหาก

ตัวอย่างเช่น สมมติว่าฉันมี:

c:\SomeFolder\Headings.txt   
    --> I want to add this to the top of each of the text files in:

c:\SomeFolder\FolderWithTextFiles\
    --> ...by running the batch file:

c:\SomeFolder\FolderWithTextFiles\BatchFile.batch

หมายเหตุเพิ่มเติม:
- ไม่จำเป็นต้องวนซ้ำผ่านโฟลเดอร์ย่อย


person Karl    schedule 13.04.2012    source แหล่งที่มา


คำตอบ (1)


แบตช์ Windows ไม่มีคำสั่งดั้งเดิมในการแก้ไขไฟล์ (นอกเหนือจากการต่อท้ายข้อมูล) ดังนั้นสำหรับแต่ละไฟล์ คุณจะต้องสร้างไฟล์ชั่วคราวที่มีเนื้อหาที่ต้องการ จากนั้นลบไฟล์ต้นฉบับและเปลี่ยนชื่อ temp เป็นไฟล์ต้นฉบับ การลบและเปลี่ยนชื่อสามารถทำได้ด้วยคำสั่ง MOVE คำสั่งเดียว

@echo off
set "header=c:\SomeFolder\Headings.txt"
set "folder=c:\SomeFolder\FolderWithTextFiles"
set "tempFile=%folder%\temp.txt"
for %%F in ("%folder%\*.txt") do (
  type "%header%" >"%tempFile%"
  type "%%F" >>"%tempFile%"
  move /y "%tempFile%" "%%F" >nul
)
person dbenham    schedule 13.04.2012