วิธีการลบไดเรกทอรีซ้ำจากบรรทัดคำสั่งใน windows ซ้ำ?


คำตอบ:


342

deltreeถ้าผมจำ DOS


ดูเหมือนว่าจะมีการอัปเดต ... นี่คือสิ่งที่คุณต้องการ:

RMDIR /S

สิ่งนี้จะลบไดเรกทอรีC:\testพร้อมท์:

rmdir c:\test /s

สิ่งนี้ทำเช่นเดียวกันโดยไม่แจ้งให้:

rmdir c:\test /s /q

เกี่ยวกับส่วน sudo ของคำถามของคุณหากคุณต้องการสิทธิ์เพิ่มเติมคุณสามารถเปิดเชลล์ใหม่เป็นบัญชีผู้ใช้อื่นโดยใช้runasคำสั่งเช่นนี้:

runas /user:Administrator cmd
rmdir c:\test /s /q

1
@FarmBoy ขอโทษดูเหมือนว่าความทรงจำของฉันจะกลับไปไกลเกินไป ฉันได้อัพเดตคำตอบสำหรับ Windows XP และใหม่กว่าแล้ว
Colin Pickard

8
ใช่deltreeเป็นคำสั่ง DOS เก่า มันถูกลบออกใน XP และแทนที่ด้วยrmdir /s
หนัก

3
การตั้งค่าสถานะ / s คืออะไร
Mike R

ด้วยเหตุผลบางอย่างมีปัญหาหากคุณทำเช่นนี้ใน Powershell ดังนั้นเพียงแค่ใช้ Command Line ของ Windows
Devid

3
@MikeR มันอาจหมายถึง "ไดเรกทอรีย่อย" หรือบางสิ่งบางอย่าง findstrมีพารามิเตอร์เดียวกันซึ่งทำให้เข้าใจได้มากกว่าในกรณีของมันดังนั้นบางทีพวกมันอาจจะเหมือนกันเพื่อความมั่นคง
Sam

57

หากคุณต้องการลบโครงสร้างโฟลเดอร์ที่ยาวและซับซ้อนออกจากพรอมต์คำสั่งที่ RmDir จะไม่แตะต้องและไม่แม้แต่ explorer สามารถแสดงได้ฉันพบว่า robocopy มีประสิทธิภาพในการลบโครงสร้าง ในตัวอย่างด้านล่างเรามีโครงสร้างขนาดใหญ่ภายในผู้ดูแลโฟลเดอร์โครงสร้างนั้นลึกมากจนไม่มีสิ่งใดสามารถลบออกได้ เราสร้างโฟลเดอร์ว่างใหม่ที่เรียกว่า (แปลกพอ!) "โฟลเดอร์ใหม่" จากนั้นเราใช้คำสั่ง robocopy โดยบอกว่าโฟลเดอร์ต้นทางคือ "โฟลเดอร์ใหม่" และโฟลเดอร์ปลายทางคือ "D: \ Administrator" พร้อมพารามิเตอร์ / MIR ซึ่งหมายความว่าจะลบสิ่งที่ไม่ได้อยู่ในโฟลเดอร์ต้นทาง

robocopy "D:\new folder" D:\Administrator /MIR

ในกรณีนี้พา ธ ของโฟลเดอร์นั้นยาวเกินไปพวกเขาจะไม่ใส่ในหน้าต่างพร้อมท์คำสั่ง Screen Buffer แต่ Robocopy จะสำรวจโครงสร้างและลบไฟล์และโฟลเดอร์ "พิเศษ" ใด ๆ (เช่นสิ่งที่ไม่ได้อยู่ในโฟลเดอร์ว่างใหม่ซึ่งเป็นทุกสิ่ง )


11
นี่เป็นทางออกเดียวที่จะทำงานเมื่อเส้นทางของคุณยาวกว่า 250 ตัวอักษรแปลก ๆ
Calm Storm

10

คุณสามารถทำสิ่งต่อไปนี้ใน PowerShell หากคุณใช้ Windows Vista +:

rm C:\path\to\delete -r -f[orce]

6
Windows 10 กล่าวว่า-fไม่ชัดเจน แต่คุณสามารถวิ่งได้rm -r -force <path>
BrunoLM

6

สำหรับฉันแล้วมันทำงานอย่างไร

del /s dir

คุณสามารถเพิ่ม/qการปิดใช้งานการยืนยัน ฉันไม่เคยจัดการrmdirทำงาน (บน XP)


6
คุณอาจจะหยุดการใช้ XP จะไม่ได้รับการสนับสนุนอีกต่อไป ...
เอริควิลสัน

3
สำหรับฉันนี้จะลบไฟล์ทั้งหมดซ้ำ แต่ไม่ได้ลบไดเรกทอรีตัวเอง - dirยังไม่ถูกลบ
sergiol

2

หากคุณมีเส้นทางที่ยาวมาก ๆ (อย่างที่ฉันทำเพราะข้อผิดพลาดของโปรแกรมจาวา) แม้ robocopy ก็ทำไม่ได้ มันสืบเชื้อสายมาประมาณ 30 วินาทีในเส้นทางของฉันแล้วแขวน

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

แบทช์นี้เล่นปิงปองระหว่างสองไดเรกทอรี leer และ leer2 และตัดไลบรารี่ 8 ของแต่ละครั้ง หากเส้นทางของคุณมีไฟล์คุณต้องเพิ่มคำสั่งเพิ่มเติมเพื่อลบ

recurdel.cmd
:loop
move c:\leer\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer2
rd /S /Q c:\leer\libraries
move c:\leer2\libraries\libraries\libraries\libraries\libraries\libraries\libraries\libraries c:\leer
rd /S /Q c:\leer2\libraries
GOTO loop

2

จาก CMD เพียงแค่เรียกใช้ RD / s C: \ path \ to \ delete กด Y เพื่อพร้อมท์

/ s มั่นใจไดเรกทอรีย่อยทั้งหมดจะถูกลบเช่นกัน

การอ้างอิงเรียกใช้วิธีใช้ RD จากบรรทัดคำสั่ง


2
ขอบคุณสำหรับคำตอบของคุณ แต่ข้อมูลนี้อยู่ในคำตอบที่ยอมรับแล้ว ( rdและrmdirเหมือนกัน) บางทีมันอาจจะเหมาะสมกับความคิดเห็นที่นั่น
Ben N

0

นี่จะเป็นการลบ "โฟลเดอร์ของฉัน" โดยไม่ต้องแจ้ง:

rd /s /q "C:\Users\gourav.g\AppData\Roaming\my folder"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.