ฉันมีสถานการณ์ที่คล้ายกันซึ่งฉันต้องการคัดลอกจำนวนโฟลเดอร์รวมถึงชื่อโฟลเดอร์ไปยังตำแหน่งปลายทางและหวังว่าคำถามนี้ตอบว่าการทำเครื่องหมายจะช่วยได้ แต่ก็ไม่ได้จริงๆ
ประการแรกมีบางครั้งที่ฉันต้องการความสามารถนี้และฉันพบเจอเมื่อฉันต้องคัดลอกโฟลเดอร์จาก C: \ Windows \ Assembly \ GAC_MSIL Windows Explorer ปฏิเสธที่จะแสดงโฟลเดอร์นี้ดังนั้นคุณต้องใช้พรอมต์คำสั่ง
หากคุณคุ้นเคยกับโฟลเดอร์ GAC คุณจะรู้ว่าชื่อโฟลเดอร์นั้นไม่ยุ่งยากและง่ายต่อการเข้าใจผิดถ้าคุณพิมพ์ผิด
ดังนั้นการสร้างไดเร็กตอรี่ล่วงหน้าไม่ใช่ตัวเลือกจริงๆ - เว้นแต่คุณจะใช้สคริปต์ - ซึ่งฉันใช้ท้ายที่สุด, เพราะนี่เป็นทางออกเดียวที่แท้จริง
ก่อนอื่นให้ทำการคัดลอกโฟลเดอร์ที่คุณต้องการคัดลอกไปยังไฟล์ชั่วคราวซึ่งโดยทั่วไปจะขึ้นอยู่กับรูปแบบบางอย่างเช่น
dir /B policy* > Folders.txt
จากนั้นวนรอบรายการในการถ่ายโอนข้อมูลและคัดลอกไปยังปลายทาง Xcopy จะดูแลการสร้างโฟลเดอร์ถ้าคุณจบอาร์กิวเมนต์ปลายทางด้วยแบ็กสแลช (\)
for /F "tokens=*" %%A in (Folders.txt) do xcopy /E /S %%A C:\Dest\%%A\
วางทั้งสองคำสั่งเหล่านี้ในไฟล์แบตช์และเรียกใช้
ตอนนี้ถ้าเพียง xcopy หรือ robocopy มีสิ่งนี้ในตัว