ลบไดเรกทอรีซ้ำที่สร้างโดย robocopy เมื่อ“ ชื่อไฟล์ยาวเกินไป”


9

หลังจากรัน robocopy.exe เพื่อสำรองข้อมูลโฟลเดอร์ C: \ Users \ โดยไม่ต้องใช้/xjสวิตช์ฉันลงเอยด้วยไดเรคทอรีแบบเรียกซ้ำซึ่งยาวเกินไป ตัวอย่างเช่นหากคุณเรียกใช้dir /b /sคุณจะได้รับข้อผิดพลาดต่อไปนี้:

ชื่อไดเรกทอรี C: \ Users \ ... \ AppData \ Local \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data \ Application Data ยาวเกินไป

ฉันพยายามลบด้วยrmdir "Application Data" /sแต่ฉันได้รับข้อผิดพลาด "ชื่อไฟล์ยาวเกินไป"

ฉันดูโซลูชันอื่น ๆ แล้ว แต่ฉันคิดว่าฉันอาจสามารถใช้เครื่องมือที่ทำให้เกิดปัญหาในการแก้ปัญหาได้

คำตอบ:


14

สร้างไดเรกทอรีว่างด้วยmkdir emptyจากนั้นใช้robocopy empty\ "Application Data\" /mir"ซึ่งจะลบทรีไดเรกทอรีทั้งหมด จากนั้นออกrmdir emptyและrmdir "Application Dataเพื่อทำความสะอาดและเสร็จสิ้น


3
+1 ไม่น่าเชื่อว่ามันต้องมีสิ่งลึกลับนี้ทำอะไรง่าย ๆ แค่ลบโฟลเดอร์ ...
nextgentech

โฟลเดอร์ recursive ที่ไม่มีที่สิ้นสุดของ buggy นี้ทำให้ฉันบ้า! ขอบคุณ.
Zofren

4

คุณอาจcdลึกลงไปในไดเรกทอรีมากพอที่จะลบสิ่งที่ด้านล่างและcdกลับไปด้านบนอีกครั้งและลบสิ่งที่เหลืออยู่

หากไม่ได้ผลและคุณยังคงติดอยู่ให้ดาวน์โหลดรุ่นทดลองฟรีของแฮมิลตันซีเชลล์ (เปิดเผยอย่างเต็มรูปแบบ: ฉันเป็นผู้แต่ง) และใช้rmยูทิลิตี้ที่มาพร้อมกับมันโดยใช้-r(เรียกซ้ำ) และ-x(ลบอะไรเลย) ) ตัวเลือก.

rm -rx directoryname

ฉันrmใช้รูปแบบชื่อไฟล์ Unicodeแบบยาวภายในทำให้ฉันสามารถจัดการพา ธ ที่มีอักขระสูงสุด 32K และควรจะได้รับ

หากคุณพบว่าปัญหายังเกี่ยวข้องกับการอนุญาตคุณอาจต้องใช้sudoหรือsuเพื่อยกระดับเช่น

sudo rm -rx directoryname

ในกรณีปากแข็งจริงๆคุณอาจถูกขัดขวางโดย ACL และป้องกันการเข้าถึงเช่น. รายงานcacls Everyone:(DENY)ในกรณีนี้คุณอาจจำเป็นต้องลบ ACE (รายการควบคุมการเข้าถึง)

cacls directoryname /e /r everyone

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


3

คุณสามารถลองอย่างใดอย่างหนึ่งต่อไปนี้;

ความละเอียดที่ 1:ใช้ชื่อ 8.3 ที่สร้างขึ้นอัตโนมัติเพื่อเข้าถึงไฟล์

วิธีแก้ไขที่ 2:เปลี่ยนชื่อหรือย้ายโฟลเดอร์ที่มีความลึก

ความละเอียดที่ 3:แมปไดรฟ์ไปยังโฟลเดอร์ในโครงสร้างของเส้นทางแมปไดรฟ์ไปยังโฟลเดอร์ภายในโครงสร้างของเส้นทางของไฟล์เป้าหมายหรือโฟลเดอร์ วิธีนี้จะทำให้เส้นทางเสมือนสั้นลง

ความละเอียดที่ 4:ใช้เครือข่ายที่ใช้ร่วมกันที่อยู่ลึกที่สุดเท่าที่โฟลเดอร์ถ้าความละเอียด 1, 2 และ 3 ไม่สะดวกหรือไม่แก้ไขปัญหาให้สร้างเครือข่ายที่ใช้ร่วมกันที่อยู่ในโครงสร้างโฟลเดอร์ที่ลึกที่สุดเท่าที่จะทำได้ เปลี่ยนชื่อโฟลเดอร์โดยเข้าถึงการแชร์

วิธีที่ 5:ใช้เครื่องมือที่สามารถข้ามเส้นทางที่ลึก

http://support.microsoft.com/kb/320081


วิธีนี้ดูเหมือนจะเป็น "การแก้ปัญหา 5: ใช้เครื่องมือที่สามารถสำรวจเส้นทางที่ลึก"
Aaron
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.