เป็นวิธีที่ดีที่สุดในการลบ 100,000 ไฟล์จาก Windows Directory อะไร


12

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

DaveF

พิเศษ -

เราประสบปัญหานี้หลายครั้งกับผู้ใช้รายเดียวกัน (จริงๆแล้วลูกค้า) โปรแกรมสร้างไฟล์ temp จำนวน 100,000 ไฟล์ในระหว่างการรัน หากโปรแกรมทำงานอย่างถูกต้องมันไม่สำคัญว่าจะถูกลบออกช้าเพราะมันเสร็จสิ้นด้วย แต่ทุก ๆ ครั้งมันก็ตายทิ้งความยุ่งเหยิงของไฟล์ เราได้ลองใช้วิธี rmdir และ del ฯลฯ และมันเร็วกว่าการใช้ explorer แต่โดยทั่วไปแล้วเราจะพบปัญหาเดียวกัน พาร์ติชั่นได้รับความเสียหาย, มีไฟล์ที่ถูกล็อคไม่ได้อธิบาย, บางไฟล์มีปัญหาสิทธิ์, ซึ่งหยุดการลบจากการทำงาน โดยปกติปัญหาเหล่านี้สามารถแก้ไขได้ด้วยการรีบูต แต่ในกรณีนี้เนื่องจากเป็นระบบที่สำคัญเราไม่สามารถผลิตได้ บน Unix คุณสามารถทำ rm -rf และอื่น ๆ ได้อย่างรวดเร็วและโดยทั่วไปไม่มีปัญหาจริง

BTW - แอปพลิเคชันกำลังมีการเปลี่ยนแปลง แต่สิ่งนี้จะไม่เข้าสู่การผลิตในบางครั้งและฉันแม้ว่าปัญหานี้อาจน่าสนใจสำหรับผู้อื่น

อัปเดต - เนื่องจากเรามี MKS Nutcracker ในระบบ (ไม่มียูทิลิตี้บรรทัดคำสั่ง) เราจึงได้โปรแกรมเมอร์มาเคาะ rm อย่างง่าย นี่เป็นคำสั่งซื้อหลายรายการที่เร็วกว่าเดล / เดลทรี ฯลฯ ฉันคิดว่ามันแปลกที่ไม่มีแอพง่าย ๆ ที่พร้อมใช้งานเป็นเครื่องมือผู้ดูแลระบบ windows มาตรฐาน


ดูเพิ่มเติมที่superuser.com/questions/19762/mass-deleting-files-in-windows
Vadzim

คำตอบ:


15

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

rmdir /s /q FOLDERNAME

แฟล็ก: /sหมายถึงลบแบบเรียกซ้ำ/qเป็นโหมด "เงียบ"


เราลองแล้ว - ฉันจะเพิ่มคำถามให้มากขึ้น
David Allan Finch

สิ่งนี้น่าจะใช้ได้ผลสำหรับคุณ มันใช้งานได้หรือ
s_ruchit

ใช่เป็นส่วนใหญ่ - ฉันได้เพิ่มปัญหาที่เราได้เห็นข้างต้นในคำถาม ขอบคุณสำหรับความคิดเห็นของคุณ
David Allan Finch

ฉันจะยอมรับคำตอบนี้ แต่มีวิธีแก้ปัญหาที่ดีกว่าคือการใช้ unix style rm ที่ง่ายกว่า แต่เนื่องจากผู้ใช้ส่วนใหญ่ไม่สามารถใช้งานได้นี่เป็นตัวเลือกที่ดีที่สุดสำหรับผู้ใช้ 99% ควรมีรูปแบบ unix rm ที่นำมาใช้กับ windows ซึ่งไม่ทำอะไรอื่นนอกจากลบซ้ำ BTW โปรแกรมเมอร์ของเรา MKS remove_tree (ดูด้านบน) thrashed rmdir ดังนั้นปัญหาไม่ใช่ Windows แต่เป็นแอพในตัว
David Allan Finch

6

ฉันเคยมีปัญหากับเซิร์ฟเวอร์ที่ฉันจัดการอยู่ ข้าม explorer ไปด้วยกันและใช้พรอมต์คำสั่ง นำทางไปยังโฟลเดอร์และ "del . "

วิธีนี้คุณหลีกเลี่ยงโอเวอร์เฮดของ GUI (explorer เป็นถังขยะ) และถังขยะรีไซเคิล


เราลองแล้ว - ฉันจะเพิ่มคำถามให้มากขึ้น
David Allan Finch

4

หากคุณไม่ต้องการสิ่งนี้สำหรับแอปพลิเคชันแบบ 16 บิตแบบดั้งเดิมพยายามเพิ่มประสิทธิภาพโดยการปิดใช้งานการสร้างชื่อไฟล์แบบสั้น สิ่งนี้อาจส่งผลกระทบอย่างมีนัยสำคัญต่อการทำงานของไดเรกทอรีที่มีไฟล์จำนวนมาก

Regedt32 select:
"HKLM\system\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameC
reation"=1

จากนั้นใช้:

เส้นทาง RMDIR / S / Q [drive:]

เพื่อลบไดเรกทอรีพร้อมไฟล์ทั้งหมด


น่าสนใจที่จะรู้
David Allan Finch


3

วิธีการเกี่ยวกับการย้ายโฟลเดอร์ temp นั้นไปยังไดรฟ์ / พาร์ติชั่นอื่น? แทนที่จะลบขยะทั้งหมดคุณสามารถฟอร์แมตไดรฟ์ (GUI หรือบรรทัดคำสั่ง) ด้วยรูปแบบด่วนนี้ควรเร็วพอสมควร


1
เราลองและบางครั้งก็ไม่อนุญาต ตอนนี้ไคลเอนต์จะเรียกใช้โปรแกรมในไดเรกทอรีอื่นทุกครั้ง
David Allan Finch

สร้างฮาร์ดลิงก์ระหว่างเส้นทาง & ไดรฟ์เช่น: ฮาร์ดลิงก์ "c: \ แอปที่โง่ของฉัน \ ที่เก็บไฟล์" ชี้ไดรฟ์ X: ในแบตช์เริ่มต้น
Nime Cloud

2

นี่คือการรวมกันของโพสต์ก่อนหน้า

เปิดหน้าต่างคำสั่ง:
File -> Run -> cmd

ลบไดเรกทอรี
rmdir /s /q FOLDERNAME

หรือ

ลบรูปแบบของไฟล์
cd \....\directory
del *.[something]

ดังที่คุณได้กล่าวไว้ในคำถาม Windows Explorer อาจทำให้สิ่งต่าง ๆ ช้าลงได้

หลังจากเห็นการอัปเดตของคุณฉันมีหนึ่งในการ
ตรวจสอบรายการของไฟล์นี้


ฉันสังเกตเห็นว่ามีไฟล์หลายร้อยไฟล์ในอดีตที่ผ่านมามันเป็นความอัปยศที่นักสำรวจสามารถทำมันได้อย่างรวดเร็วเหมือนแอพบรรทัดคำสั่ง - พวกเขาสามารถให้ลูกค้าทำเองได้ ขอบคุณสำหรับคำตอบ.
David Allan Finch

1

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

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

นอกเหนือจากนั้นวิธีเดียวที่จะทำให้การลบเร็วขึ้นคือการจัดเรียงข้อมูลบนฮาร์ดดิสก์ วิธีแก้ปัญหาชั่วคราวอาจเป็นการย้ายไดเรกทอรีนี้ไปยังการแบ่งปันแซมบ้าหรือใช้จุดเชื่อมต่อ NTFS ไปยังฮาร์ดดิสก์ USB แบบพกพา (พาร์ติชันเล็ก ๆ จะดีกว่าและเร็วกว่าการใช้ฮาร์ดดิสก์ทั้งหมด) จากนั้นคุณสามารถนำฮาร์ดดิสก์ออกและทำรูปแบบด่วนบนพีซีเครื่องอื่น


นั่นคือสิ่งที่ฉันคิด - IE ไฟล์ที่เสียหาย แต่ทำไมพวกเขาไม่ปิดโดยเคอร์เนล NT? ความเร็วเป็นปัญหากับโปรแกรมดังนั้นการใช้ Samba หรือฮาร์ดดิสก์ USB เป็นตัวเริ่มต้น แต่ไคลเอนต์ได้รับการแนะนำให้สร้างพาร์ติชันแยกต่างหากสำหรับแต่ละการรันและฟอร์แมตใหม่ ไม่แน่ใจว่าพวกเขาได้ลองแล้วหรือยัง - ขอบคุณ
David Allan Finch

1

พาร์ติชั่นที่เสียหายจากการลบไฟล์? นั่นเป็นปัญหาหลักของดิสก์โดยไม่คำนึงถึงจำนวนไฟล์ที่ถูกลบ

ฉันจะลองใช้บรรทัดคำสั่งลบแล้วลบให้มากที่สุดเท่าที่จะทำได้จนกว่าจะเจออันที่ถูกล็อค จากนั้นใช้Process Explorerเพื่อค้นหากระบวนการที่เปิดไฟล์นั้น ฆ่ากระบวนการนั้น (ถ้าคุณทำได้) จากนั้นทำการลบอีกครั้ง ล้างซ้ำ :)


ต้องการลองใช้สิ่งนี้ แต่เราไม่สามารถเข้าถึงเครื่องได้โดยตรงและแอปพลิเคชันนั้นหมดอายุ ขอบคุณอยู่ดี
David Allan Finch

1

รีบูตโดยใช้ซีดี Linux 'Live' ซึ่งเป็น rm -rf


เราไม่สามารถรีบูทเซิร์ฟเวอร์นี้ได้เนื่องจากเป็นสิ่งสำคัญสำหรับลูกค้า แต่ขอขอบคุณสำหรับคำตอบ
David Allan Finch

1

ค่อนข้างแฮ็ก แต่คุณสามารถสร้างสคริปต์ที่จะลบไฟล์ฉันไม่รู้รูปแบบ แต่สมมติว่ามันเป็นไฟล์ที่เริ่มต้นด้วยตัวอักษร az คุณสามารถทำได้

deltree /y a*
deltree /y b*
...
deltree /y z*

เปลี่ยน deltree ด้วยวิธีการลบที่คุณเลือก อาจช้าลง แต่มีข้อผิดพลาดน้อยลง?

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


นี่เป็นความพยายาม แต่มันไม่ได้แก้ปัญหาจริงๆ - ขอบคุณ
David Allan Finch

เรายังมีการติดตั้ง MKS Nutcracker แต่ด้วยเหตุผลด้านความปลอดภัยยูทิลิตี้บรรทัดคำสั่งเมื่อลบออก - ไม่ใช่ตัวเลือก แต่สิ่งที่เราทำไปแล้วก็เขียนออกมาเป็นของตัวเองแล้วมันก็ใช้งานได้
David Allan Finch

1

วิธีการต่าง ๆ ข้างต้นทำงานทั้งหมด หากคุณมี cygwin ที่โหลดบน thumb drive คุณก็สามารถเสียบมันเข้ากับ USB ในเครื่องของคุณเปิดไฟเปลือก cygwin ของคุณและเรียกใช้คำสั่ง RM ตามที่อ้างถึงข้างต้น นี่เป็นวิธีที่สะดวกในการรักษาความยืดหยุ่นของยูนิกซ์ในมือ


นี่เป็นโซลูชันที่สมเหตุสมผลเมื่อคุณจัดการระบบ
David Allan Finch

1

คุณสามารถบูตเข้าสู่คอนโซลการกู้คืนหรืออะไรก็ได้ที่อยู่ในบรรทัดเหล่านั้น ที่ควรละเว้นปัญหาแปลก ๆ กับระบบปฏิบัติการอย่างสมบูรณ์


ขออภัยเราไม่สามารถรีบูตเซิร์ฟเวอร์ แต่ขอบคุณสำหรับคำตอบ
David Allan Finch

1

เมานต์โฟลเดอร์จากเครื่อง linux และทำการลบแบบเรียกซ้ำ

# mount -t cifs //server/share /mnt/tobedeleted -o username=yourshareusername

# rm /mnt/tobedeleted/* -R

คุณสามารถใช้งาน cron เพื่อลบไฟล์ในช่วงเวลาปกติ


คุณเคยลองไหม
David Allan Finch

1

ทำไมไม่ใช้ robocopy และทำมิเรอร์ไดเรกทอรีว่าง

เพียงสร้างโฟลเดอร์ว่างแล้วใช้:

ROBOCOPY C:\ThisIsAnEmptyFolder C:\Users\SomeUser\Desktop\SomeFolderWithTempFiles /MIR

0

หากไม่มีคำแนะนำอื่นใดที่ใช้งานได้คุณได้พิจารณาการเร่ง I / O ของคุณหรือไม่

ซื้อคอนโทรลเลอร์ที่ดีกว่าเร็วกว่าดิสก์ ..

หรือฉันสงสัยว่าถ้าไฟล์เป็นชั่วคราว (ตามที่คุณบอก) และขนาดที่อนุญาตคุณสามารถเพิ่ม RAM พิเศษลงในกล่อง (ราคาถูก) และตั้งค่าดิสก์ RAM ได้หรือไม่

กรณีที่ดีที่สุดประสิทธิภาพจะไม่ลดลงเมื่อลบไฟล์จำนวนมาก กรณีที่แย่ที่สุดการรีบูตจะล้างพาร์ติชัน


ชอบที่จะทำ แต่ฉันไม่คิดว่าลูกค้าจะใช้จ่ายอย่างที่พวกเขาคาดหวังว่าจะมีโปรแกรมเวอร์ชั่นใหม่ - ขอบคุณสำหรับคำตอบ
David Allan Finch

RAM เซิร์ฟเวอร์ในสหราชอาณาจักรในปัจจุบันประมาณ 10 ปอนด์ต่อกิกะไบต์
tomfanning

จริง แต่ลูกค้าจ่าย X สำหรับเครื่อง (จากใบเสนอราคา) และไม่เห็นเหตุผลที่จะใช้ Y เพิ่มเติม
David Allan Finch

เพราะเซิร์ฟเวอร์ที่ระบุทำงานได้ไม่ดีพอ?
tomfanning

มันดีพอสำหรับงาน ปัญหาคือโปรแกรมมีข้อบกพร่องที่อยู่ระหว่างการแก้ไข พวกเขาจะไม่ใช้เงินอีกต่อไป
David Allan Finch

0

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


ฉันคิดว่าไคลเอนต์ลองสิ่งนี้และมันก็ไม่ได้ดีไปกว่าการใช้ Explorer ตามปกติ ขอบคุณ
David Allan Finch

0

การลบด้วย SHIFT + DEL สร้างความแตกต่างตามความเร็วหรือไม่


เมื่อฉันลองมันครั้งสุดท้ายมันก็เหมือนกันมาก
David Allan Finch

อันที่จริงฉันเพิ่งลองใหม่อีกครั้ง - ด้วยการติดตั้งแบบเก่าและฉันยังรออยู่ ฉันอาจจะยอมแพ้และใช้ MKS rm
David Allan Finch
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.