Batch Script การต่อเชื่อมไฟล์หลายไฟล์ในหลาย ๆ โฟลเดอร์เป็นไฟล์เดียว


0

ฉันมีประมาณ 20 โฟลเดอร์และทั้งหมดมีประมาณ 100 csv ไฟล์แต่ละไฟล์ ฉันต้องการรวมทั้งหมดเข้าด้วยกันเป็นไฟล์เดียว ฉันจะทำสิ่งนี้ได้อย่างไร ฉันรู้เกี่ยวกับ copy คำสั่งเพื่อรวมไฟล์ของหนึ่งโฟลเดอร์ ถ้าฉันทำอย่างนั้นฉันจะได้รับ 20 ไฟล์ใน 20 โฟลเดอร์ หากต้องการรวมเข้าด้วยกันฉันจะสำรวจแต่ละโฟลเดอร์และทำอย่างไร

ฉันพยายามเขียนชุดสคริปต์เช่นนี้

FOR /D /R %G in ("*") DO (
cd %G 
COPY *.csv new.csv )

แต่มันทำงานไม่ถูกต้อง ข้อเสนอแนะใด ๆ

คำตอบ:


1

หากไฟล์ทั้งหมดเป็น CSV ที่ถูกต้องจริงๆให้แก้ไขบรรทัดสุดท้ายเพื่อวนซ้ำไฟล์ในโฟลเดอร์ปัจจุบันโดยใช้ตัวแปร% H เปลี่ยนสำเนาเป็น:

TYPE %H >>new.csv

ควรจะทำงาน (ไม่ผ่านการทดสอบอย่างเต็มที่ฉันกลัว)

อย่างไรก็ตามวิธีที่ดีกว่าคือการใช้ PowerShell เนื่องจากมี cmdlets เพื่อจัดการอินพุตและเอาต์พุต CSV และดังนั้นจึงสามารถจัดการกับสิ่งแปลกประหลาดใด ๆ ในโครงสร้างของไฟล์โดยไม่ทำลายเอาต์พุต


ขอบคุณ ฉันเขียนลูปและทำให้มันทำงานได้ ... ฉันจะลองตอบคุณเช่นกัน
user1930402

0

ฉันได้ส่วนแรกทำงานนั่นคือไฟล์ csv ทั้งหมดในแต่ละโฟลเดอร์ย่อยจะรวมกันเป็นไฟล์ csv แต่ละไฟล์ ดังนั้นฉันมีไฟล์ 20 csv ข้อผิดพลาดเป็นโสด %. มันควรจะเป็น %%G.

 FOR /D /R %%G in ("*") DO (
  cd %%G 
  COPY *.csv new.csv )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.