วิธีใช้ dir และคัดลอกร่วมกันเพื่อค้นหาไดเรกทอรีและคัดลอกไปยังโฟลเดอร์?


10

ฉันต้องการค้นหาโฟลเดอร์ที่ระบุและไดเรกทอรีย่อยเพื่อหาไฟล์จากนั้นคัดลอกไปยังโฟลเดอร์ที่ระบุที่อื่น มันเป็นไปได้ที่จะใช้dirและcopyมีท่อหรือไม่?

dir /s foo???.txt | copy g:\someplace

ข้างต้นไม่ทำงาน ด้านซ้ายของไปป์พบสิ่งที่ฉันต้องการ แต่ฉันไม่สามารถคัดลอกไฟล์ที่พบ ฉันกำลังใช้พรอมต์คำสั่งของ Windows 7


คุณต้องการไฟล์ประเภทใดจากความอยากรู้ อักขระตัวแทนจะไม่เพียงพอหรือไม่
เดฟ

ฉันจำเป็นต้องใช้ไวด์การ์ด (??? - "?" เป็นไวด์การ์ดหลักเดียว) ในคำสั่งซึ่งคำสั่งด้านบนจะจับ foo_42, foo_01 ฯลฯ และไฟล์เหล่านั้นจะอยู่ในโฟลเดอร์ย่อยต่างๆ
Flotsam N. Jetsam

คำตอบ:


10

คุณสามารถใช้xcopy:

xcopy /s foo???.txt g:\someplace

นี้จะถือโครงสร้างไดเรกทอรี

หากคุณไม่ต้องการโครงสร้างไดเรกทอรีคุณสามารถทำสิ่งต่อไปนี้:

for /r %i in (foo???.txt) do xcopy /Y "%i" g:\someplace

หากคุณใช้สิ่งนี้ใน batchfile คุณควรเพิ่มเป็นสองเท่า%ดังนี้:

for /r %%i in (foo???.txt) do xcopy /Y "%%i" g:\someplace

อันที่จริงฉันต้องพูดเกินจริงเล็กน้อย มันสามารถทำได้โดยไม่ต้องรักษาโครงสร้างไดเรกทอรีหรือไม่?
Flotsam N. Jetsam

ฮ่าฮ่านั่นคือสิ่งที่ฉันกลัว :) (นั่นเป็นเหตุผลที่ฉันระบุไว้โดยเฉพาะ) แต่คุณจะทำอย่างไรกับชื่อไฟล์ที่ซ้ำกัน มันไม่สามารถทำได้ด้วย xcopy เอง แต่คุณสามารถทำได้ด้วยการวางท่อเพื่อ robocopy (หรืออาจจะเพียงแค่คัดลอก แต่ใน batchfile) คุณมี Windows รุ่นใด
Rik

Windows 7 จะไม่มีการซ้ำซ้อนสำหรับแอปพลิเคชันของฉัน
Flotsam N. Jetsam

เพิ่มวิธีการคัดลอกไปยังไดเรกทอรีเดียว โชคดีที่ไม่ต้องใช้ robocopy for /rใช้เพียงแค่
Rik

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