Cách tốt nhất để xóa 100.000 tệp khỏi Thư mục Windows là gì


12

Tôi đã có một người dùng với hơn 100.000 tệp trong một thư mục. Máy bị khóa và không sử dụng được trong một thời gian dài trong khi Explorer làm đầy bộ nhớ và máy có thể gặp sự cố. Có một cách đơn giản để từ bỏ thư mục và nội dung? Chúng tôi đã thử sử dụng deltree dòng lệnh và điều này không tốt hơn nhiều.

DaveF

Thêm -

Chúng tôi đã gặp vấn đề này nhiều lần với cùng một người dùng (thực sự là khách hàng). Một chương trình tạo ra hàng trăm ngàn tệp tạm thời trong quá trình chạy. Nếu chương trình hoạt động chính xác thì không vấn đề gì khi chúng bị xóa chậm vì nó đã kết thúc với điều này. Nhưng cứ thỉnh thoảng nó lại chết để lại đống hỗn độn. Chúng tôi đã thử sử dụng các phương thức rmdir và del, v.v. và chúng nhanh hơn so với sử dụng explorer nhưng chúng tôi thường kết thúc với cùng một vấn đề. Phân vùng bị hỏng, có một tệp bị khóa không giải thích được, một số tệp có vấn đề về quyền, khiến việc xóa không hoạt động. Thông thường những vấn đề này có thể được khắc phục bằng khởi động lại nhưng trong trường hợp này vì đây là một hệ thống quan trọng chúng ta không thể sản xuất được. Trên Unix bạn chỉ có thể thực hiện rm -rf vv và điều này nhanh chóng và thường không có vấn đề thực sự với nó.

BTW - ứng dụng đang được thay đổi nhưng đôi khi điều này sẽ không được đưa vào sản xuất và tôi mặc dù vấn đề này có lẽ rất thú vị với những người khác.

Cập nhật - vì chúng tôi có MKS Nutcracker trên hệ thống (không có tiện ích dòng lệnh), chúng tôi đã khiến lập trình viên kết hợp một rm đơn giản. Đây là một số đơn đặt hàng nhanh hơn del / deltree, v.v ... Tôi thấy lạ là không có ứng dụng đơn giản nào có sẵn như một công cụ quản trị hệ thống windows tiêu chuẩn.


Câu trả lời:


15

Bạn có thể sử dụng rmdir:

rmdir /s /q FOLDERNAME

Cờ: /scó nghĩa là xóa đệ quy, /qlà chế độ "im lặng".


Chúng tôi đã thử điều này - tôi sẽ thêm nhiều hơn vào câu hỏi.
David Allan Finch

điều này nên làm việc cho bạn Nó có hoạt động không?
s_ruchit

có chủ yếu - tôi đã thêm những vấn đề chúng ta đã thấy ở trên trong câu hỏi. cám ơn bạn đã góp ý.
David Allan Finch

Tôi sẽ chấp nhận câu trả lời này. Nhưng có một giải pháp tốt hơn đó là sử dụng kiểu rm unix đơn giản hơn nhưng vì điều này không phù hợp với hầu hết người dùng, đây là lựa chọn tốt nhất cho 99% người dùng. Cần có một kiểu rm unix được triển khai cho các cửa sổ không làm gì khác ngoài việc xóa đệ quy. BTW lập trình viên của chúng tôi MKS remove_tree (xem ở trên) đã phá hủy rmdir để vấn đề không phải là Windows mà là các ứng dụng tích hợp.
David Allan Finch

6

Tôi sử dụng để có vấn đề này với các máy chủ tôi đang quản lý. Bỏ qua thám hiểm hoàn toàn và sử dụng dấu nhắc lệnh. Điều hướng đến thư mục và "del . "

Bằng cách này, bạn sẽ tránh được chi phí hoạt động của GUI (explorer là rác) và Thùng rác tái chế.


Chúng tôi đã thử điều này - tôi sẽ thêm nhiều hơn vào câu hỏi.
David Allan Finch

4

Trừ khi bạn cần điều này cho các ứng dụng 16 bit cũ, hãy thử tăng hiệu suất bằng cách vô hiệu hóa việc tạo tên tệp ngắn. Điều này có thể có một tác động đáng kể đến các hoạt động thư mục với số lượng lớn các tập tin.

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

Sau đó sử dụng:

Đường dẫn RMDIR / S / Q [drive:]

để loại bỏ thư mục với tất cả các tập tin của nó.


Đó là điều thú vị để biết.
David Allan Finch


3

Làm thế nào về việc di chuyển thư mục tạm thời sang một ổ đĩa / phân vùng khác? Thay vì xóa tất cả rác, bạn có thể định dạng ổ đĩa (GUI hoặc dòng lệnh). Với định dạng nhanh, điều này sẽ nhanh chóng hợp lý.


1
Chúng tôi đã thử điều này và đôi khi nó không cho phép điều này. Máy khách bây giờ chạy chương trình trong một thư mục khác nhau mỗi lần.
David Allan Finch

Tạo một liên kết cứng giữa đường dẫn và ổ đĩa, tức là: liên kết cứng "c: \ my ngớ ngẩn ứng dụng \ nơi các tệp được lưu trữ" trỏ ổ đĩa X: trong một lô khởi động
Nime Cloud 22/11/11

2

Đây là sự kết hợp của các bài viết trước

mở một cửa sổ lệnh:
File -> Run -> cmd

Xóa thư mục
rmdir /s /q FOLDERNAME

HOẶC LÀ

Xóa một mẫu các tập tin
cd \....\directory
del *.[something]

Như bạn đã lưu ý trong câu hỏi của mình, Windows Explorer thực sự có thể làm mọi thứ chậm lại.

Sau khi xem cập nhật của bạn, tôi có một bản riêng của mình
Kiểm tra Danh sách các bản sửa lỗi tệp này


Tôi đã nhận thấy điều này chỉ với vài trăm tệp trong quá khứ, thật đáng tiếc rằng explorer có thể được thực hiện để làm nhanh như các ứng dụng dòng lệnh - chúng tôi có thể khiến khách hàng tự làm. Cảm ơn câu trả lời của bạn.
David Allan Finch

1

Tôi không có gì tốt hơn del và rm, nhưng ngay cả khi chúng mất một thời gian rất dài, nó sẽ không dẫn đến thiệt hại phân vùng. Các tập tin bị khóa có thể là do chương trình tạo ra chúng chết đột ngột.

Đôi khi, mặc dù các tệp không thể bị xóa, chúng có thể được chuyển sang thư mục con tạm thời khác. Tôi chỉ cần tạo một thư mục con _todel và di chuyển chúng đến đó. Nó thường hoạt động tốt hơn nếu tôi di chuyển toàn bộ thư mục lên một cấp, thay vì chính các tệp.

Ngoài ra, cách duy nhất để xóa nhanh hơn là chống phân mảnh đĩa cứng. Một cách giải quyết tạm thời có thể là chuyển thư mục này sang chia sẻ samba hoặc sử dụng đường nối NTFS vào ổ cứng USB di động. (Một phân vùng nhỏ sẽ tốt hơn và nhanh hơn so với sử dụng toàn bộ đĩa cứng). Sau đó, bạn có thể chỉ cần đẩy đĩa cứng và định dạng nhanh trên PC khác.


Đó là những gì tôi nghĩ - IE các tệp bị hỏng nhưng tại sao chúng không được đóng bởi Hạt nhân NT? Tốc độ là một vấn đề với chương trình, vì vậy sử dụng Samba hoặc đĩa cứng USB là không bắt đầu. Nhưng khách hàng đã được đề xuất tạo một phân vùng riêng cho mỗi lần chạy và định dạng lại. Không chắc họ đã thử chưa. - Cảm ơn
David Allan Finch

1

Một phân vùng bị hỏng từ xóa các tập tin? Đó là một vấn đề lớn với đĩa, bất kể số lượng tệp bị xóa.

Tôi sẽ thử xóa dòng lệnh và xóa càng nhiều càng tốt cho đến khi bạn gặp một cái bị khóa. Sau đó sử dụng Process Explorer để tìm tiến trình nào mở tệp đó. Giết quá trình đó (nếu bạn có thể), và sau đó thực hiện xóa lại. Rửa sạch, lặp lại :)


Muốn thử điều này nhưng chúng tôi không có quyền truy cập trực tiếp vào máy và ứng dụng đã chết. Dẫu sao cũng xin cảm ơn.
David Allan Finch

1

Khởi động lại bằng CD Linux 'Live', rm -rf


Chúng tôi không thể khởi động lại máy chủ này vì nó rất quan trọng đối với khách hàng - nhưng cảm ơn vì câu trả lời.
David Allan Finch

1

Rất tiếc, nhưng bạn có thể tạo một tập lệnh sẽ xóa các tệp, tôi không biết định dạng, nhưng giả sử đó là các tệp bắt đầu bằng các chữ cái az, bạn có thể làm

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

thay đổi deltree với phương pháp loại bỏ của bạn lựa chọn. có lẽ chậm hơn, nhưng ít bị lỗi hơn?

sidenote: bạn cũng có thể thử cài đặt cygwin để nhận các lệnh như rm, điều này có thể sẽ tiếp tục xóa các tệp ngay cả khi nó gặp lỗi với một tệp.


Điều này đã được thử nhưng nó không thực sự giải quyết được vấn đề - dù sao cũng cảm ơn.
David Allan Finch

Chúng tôi cũng đã cài đặt MKS Nutcracker nhưng vì lý do bảo mật, các tiện ích dòng lệnh bị loại bỏ - không phải là sự lựa chọn. Nhưng những gì chúng tôi đã làm được viết ra rm riêng và điều này không hoạt động.
David Allan Finch

1

Các phương pháp khác nhau trên tất cả các công việc. Nếu bạn đã tải cygwin trên một ổ USB, bạn có thể cắm nó vào USB cục bộ, kích hoạt vỏ cygwin của bạn và chạy lệnh RM như được tham chiếu ở trên. Đây là một cách thuận tiện để giữ sự linh hoạt unix trong tầm tay.


Đây là một giải pháp hợp lý khi bạn quản lý hệ thống.
David Allan Finch

1

Bạn cũng có thể khởi động vào bảng điều khiển phục hồi hoặc một cái gì đó dọc theo các dòng đó. Điều đó nên hoàn toàn bỏ qua bất kỳ vấn đề lạ với HĐH.


Xin lỗi, chúng tôi không thể khởi động lại máy chủ nhưng cảm ơn vì câu trả lời.
David Allan Finch

1

Gắn kết thư mục từ máy linux và xóa đệ quy từ đó.

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

# rm /mnt/tobedeleted/* -R

Bạn thậm chí có thể sử dụng một công việc định kỳ để xóa các tệp theo định kỳ.


bạn đã thử cái này chưa
David Allan Finch

1

Tại sao không sử dụng robocopy và nhân bản một thư mục trống?

Chỉ cần tạo một thư mục trống, và sau đó sử dụng:

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

0

Nếu không có đề xuất nào khác đang hoạt động, bạn đã xem xét tăng tốc I / O của mình chưa?

Mua bộ điều khiển tốt hơn, đĩa nhanh hơn ..

Hoặc tôi tự hỏi, nếu các tệp tạm thời (như bạn ngụ ý) và kích thước cho phép, bạn có thể thêm RAM vào hộp (giá rẻ) và thiết lập đĩa RAM không?

Trường hợp tốt nhất, hiệu suất sẽ không bị suy giảm khi xóa khối lượng lớn tệp. Trường hợp xấu nhất, khởi động lại sẽ xóa phân vùng.


Thích nhưng tôi không nghĩ khách hàng sẽ bỏ ra vì họ đang mong đợi một phiên bản mới của chương trình - cảm ơn vì câu trả lời.
David Allan Finch

RAM máy chủ ở Anh hiện tại khoảng 10 GBP mỗi gigabyte.
tomfanning

Đúng nhưng khách hàng trả X cho máy (từ báo giá) và thấy không có lý do gì để chi thêm Y.
David Allan Finch

Bởi vì máy chủ được chỉ định không làm công việc đủ tốt?
tomfanning

Nó là đủ tốt cho công việc. Vấn đề là chương trình có một lỗi đang trong quá trình sửa. Họ sẽ không chi thêm tiền.
David Allan Finch

0

Hãy thử cắt và dán nó vào thùng rác, nó sẽ bỏ qua việc cố gắng di chuyển mọi tệp đơn lẻ. Không chắc chắn những gì nó sẽ làm để làm trống thùng mặc dù bởi vì sau đó nó có thể sẽ đi qua mọi tập tin.


Tôi nghĩ rằng khách hàng đã thử điều này và nó không tốt hơn nhiều so với sử dụng Explorer bình thường. Cảm ơn
David Allan Finch

0

Việc xóa bằng SHIFT + DEL có tạo ra sự khác biệt nào về tốc độ không?


Khi tôi thử nó lần cuối nó cũng giống như vậy.
David Allan Finch

Trong thực tế, tôi đã thử lại lần nữa - với một bản cài đặt cũ và tôi vẫn đang chờ đợi. Tôi có thể sẽ từ bỏ và sử dụng MKS rm.
David Allan Finch
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.