บรรทัดคำสั่งหรือชุดคำสั่งเพื่อเชื่อมหลายไฟล์


99

ฉันมีไฟล์ข้อความ 50 ไฟล์ในไดเรกทอรีเดียว

มีวิธีใช้บรรทัดคำสั่งของ Windows ในการเชื่อมไฟล์เหล่านั้นเป็นไฟล์เดียวหรือไม่?

ฉันใช้Windows Vista

ฉันไม่ต้องการพิมพ์ชื่อไฟล์ทั้งหมด


คุณใช้ DOS รุ่นใด :) c'mon ให้ข้อมูลเพิ่มเติมกับเราไฟล์ประเภทไหน ... คุณกำลังมองหาวิธีรวมไฟล์เหล่านั้นอย่างชัดเจน

แก้ไขโพสต์แล้ว
Mirage

2
DOS ในระบบปฏิบัติการที่ใช้ Windows NT (NT, 2000, และทุกอย่างตั้งแต่ XP) ไม่ใช่ DOS จริงๆมันเป็นเชลล์คำสั่งที่เรียกว่า "cmd.exe" ลบแท็ก DOS เพื่อสะท้อนถึงสิ่งนี้
ต้มตุ๋น quixote

ขอโทษสำหรับสิ่งนั้นฉันไม่รู้จริงๆ ฉันคิดว่า DOS
Mirage

1
โชคดีที่ร่องรอยสุดท้ายของ DOS เสียชีวิตด้วย Windows ME :) แต่ไม่ต้องกังวล - ทุกคนส่วนใหญ่ยังคงเรียกใช้ Windows บรรทัดคำสั่ง "ดอส" ดังนั้นจึงไม่ผิดเพียงที่ไม่ถูกต้อง เนื่องจากยังคงใช้ DOS จริงบางครั้งฉันกำลังล้างข้อมูลแท็ก DOS เป็นคำถามของจริง
ต้มตุ๋น Quixote

คำตอบ:


128

ฉันไม่ต้องการพิมพ์ชื่อไฟล์ทั้งหมด

มันง่ายที่จะหลีกเลี่ยง เปิดพรอมต์คำสั่งในโฟลเดอร์นี้และพิมพ์คำสั่งต่อไปนี้:

copy /b *.txt newfile.txt

Enterกด

ตอนนี้คุณจะมีไฟล์ข้อความทั้งหมดในโฟลเดอร์นี้เรียงลำดับตามวันที่จากน้อยไปหามากผสานเป็นไฟล์เดียวชื่อ newfile.txt

เป้าหมายสูงสุดของฉันคือการจัดเก็บเนื้อหาของไฟล์ข้อความแต่ละไฟล์ในคอลัมน์แยกต่างหากของแผ่นงาน Excel

นี่คือบทแนะนำที่อาจช่วยให้คุณบรรลุ "เป้าหมายสูงสุด" ของคุณ:

รวมไฟล์ CSV หรือ TXT ทั้งหมดในโฟลเดอร์ในแผ่นงานเดียว


เป็นไปได้หรือไม่ที่จะแทรกอักขระบรรทัดใหม่หลัง everyfile
Mirage

ไม่ได้ใช้วิธีการนี้
ต้มตุ๋น quixote

ตัวเลือกอื่น ๆ คืออะไร เป้าหมายสูงสุดของฉันคือการจัดเก็บเนื้อหาของไฟล์ข้อความแต่ละไฟล์ในคอลัมน์แยกต่างหากของแผ่นงาน Excel แนวคิดใด ๆ
Mirage

@Mirage - อัปเดตคำตอบของฉันตามความคิดเห็นของคุณ

แต่ปัญหาคือฉันจะเพิ่มตัวอักขระปลายทางในไฟล์ข้อความแต่ละไฟล์ได้อย่างไร ขณะนี้ข้อความบางไฟล์อยู่ใน paragrah เดียวกันในไฟล์ที่รวมอยู่ดังนั้น excel จึงใส่ไว้ในคอลัมน์เดียว หรือถ้าฉันสามารถต่อท้ายอักขระบางตัวในไฟล์ทั้งหมดก่อนจากนั้นจึงทำการผสาน
Mirage

38

หากต้องการเพิ่ม newLine ที่จุดสิ้นสุดของแต่ละไฟล์ที่ต่อกันให้ใช้typeแทนcopyดังนี้:

type *.txt > newfile.txt

5
คำเตือน: เมื่อคุณใช้ประเภท * .txt> newfile.txtข้อความจะซ้ำกัน
Malganis

2
ลบ.txtจากnewfileและปัง! ที่นั่นคุณมีมัน
fa wildchild

นี่คือคำตอบที่ยอดเยี่ยมสำหรับการต่อเชื่อมล็อกไฟล์หรือสิ่งอื่น ๆ ที่คุณจะแยกวิเคราะห์ตามถนน ความจริงที่คุณสามารถทำได้type x.log.* > merged.logโดยเฉพาะไฟล์แบตช์ บรรทัดใหม่นั้นง่ายต่อการจัดการ
Daniel Chapman

1
ว้าวtypeมานานแล้วตั้งแต่ DOS 3.3 ฉันไม่รู้ว่าคุณสามารถใช้ไฟล์มาสก์ได้ เกิดขึ้นเมื่อใด
อาทิตย์ที่

32

สมมติว่าคุณกำลังพูดถึงการต่อท้ายไฟล์ข้อความcopyคำสั่งสามารถใช้เพื่อผนวกเข้าด้วยกัน:

copy file1+file2+file3 targetfile

หากคุณมีไฟล์จำนวนมากคุณสามารถวนซ้ำได้โดยเพิ่มหนึ่งไฟล์ต่อครั้ง

สำหรับไฟล์ไบนารีให้เพิ่ม/bตัวเลือก '':

copy /b file1+file2+file3 targetfile

นี่ถือว่าคุณรู้ว่าไฟล์ไบนารีที่คุณกำลังทำงานอยู่นั้นสามารถผนวกกลับไปด้านหลังได้ ถ้าไม่คุณจะได้รับข้อมูลที่ไร้ประโยชน์


5
สิ่งนี้มีประโยชน์มากหากคุณต้องการต่อไฟล์เข้าด้วยกันตามลำดับที่เฉพาะเจาะจง
kapex

Microsoft เอกสารบนcopy docs.microsoft.com/en-us/windows-server/administr/…
S Meaden

8

เรียกใช้คำสั่งต่อไปนี้ในพร้อมท์คำสั่ง:

for %f in (*.txt) do type "%f" >> output.txt

1
ไม่สามารถทำงานได้ตามที่คาดหวังข้อความทั้งหมดซ้ำซ้อนในoutput.txt
DavidPostill

3
คำแนะนำ * .txt ตรงกับ output.txt
DavidPostill

@ DavidPostill ฉันได้แก้ไขคำตอบตามที่คุณกังวล
ซาแร

3

ไฟล์. bat ต่อไปนี้จะผนวกไฟล์ * .for ทั้งหมดยกเว้นไฟล์ที่ชื่อว่า XIT.for ไปยังไฟล์เปล่าที่ชื่อว่า MASTER.for

type NUL > MASTER.for
FOR %%G IN (*.for) DO IF NOT "%%G" == "XIT.for" copy /A MASTER.for+"%%G" && echo. >> MASTER.for

:)


2
การบิดเล็กน้อยด้านบน: หากต้องการให้แน่ใจว่าไฟล์นั้นเรียงต่อกันตามตัวอักษรไฟล์นั้นควรใช้: FOR / F %% G IN ('dir / b / o * .for') ถ้าไม่ "%% G" == "XIT.for" copy / A MASTER.for + "%% G" && echo >> MASTER.for
Guido Domenici

ฉันชอบสิ่งนี้. ปรับแต่งอีกอย่างที่ฉันต้องการในวันนี้สำหรับส่วนหัวของชื่อไฟล์ที่จะพิมพ์ลงในไฟล์เพื่อแยกไฟล์อินพุต for %f in (*.txt) do ((echo. & echo == %f == & echo. & type %f ) >> *.txt.dat )
Curtis Price

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