ฉันมีสคริปต์บรรทัดเดียวที่คัดลอกไฟล์ ".ext1" ทั้งหมดจากโฟลเดอร์ปัจจุบันไปยังโฟลเดอร์ปลายทางซ้ำ:
xcopy *.ext1 D:\dest /s /d /y
มันทำงานได้อย่างสมบูรณ์
ตอนนี้ฉันต้องการคัดลอก * .ext2 ทั้งหมดด้วย แทนที่จะคัดลอกวาง (ใช้งานได้ดี):
xcopy *.ext1 D:\dest /s /d /y
xcopy *.ext2 D:\dest /s /d /y
ฉันต้องการใช้for
คำสั่ง:
for %%f in (*.ext1 *.ext2) do xcopy %%f D:\dest /s /d /y
แต่มันไม่ทำงาน:
- มันไม่ได้คัดลอกส่วนย่อยของโฟลเดอร์ต้นทาง
- มันไม่ได้คัดลอกไฟล์ที่มีชื่อที่มีช่องว่างเช่น "read me.ext1"
ฉันพยายามใช้/R
รหัส:
for /R %%f in (*.ext1 *.ext2) do xcopy %%f D:\dest /s /d /y
แต่มันส่งผลให้มีการคัดลอกไฟล์ต้นฉบับย่อยไปยังโฟลเดอร์รากของปลายทาง และชื่อที่มีช่องว่างไม่ได้ไป
รูปแบบที่ถูกต้องของfor
คำสั่งจะเป็นอย่างไร
...xcopy "%%f%" ...