Jaki jest najlepszy sposób na usunięcie 100 000 plików z katalogu Windows

12

Miałem użytkownika z ponad 100 000 plików w jednym katalogu. Maszyna blokuje się i staje się bezużyteczna przez długi czas, podczas gdy Eksplorator zapełnia pamięć i maszyna może ulec awarii. Czy istnieje prosty sposób na zrzucenie katalogu i zawartości? Próbowaliśmy użyć deltree z wiersza poleceń i nie było to lepsze.

DaveF

Extra -

Mieliśmy ten problem kilka razy z tym samym użytkownikiem (właściwie klientem). Podczas tworzenia program tworzy setki tysięcy plików tymczasowych. Jeśli program działa poprawnie, nie ma znaczenia, ponieważ zostaną one spowolnione po zakończeniu pracy. Ale co jakiś czas umiera, pozostawiając bałagan plików. Próbowaliśmy używać metod rmdir i del itp. Są one szybsze niż przy użyciu Eksploratora, ale generalnie mamy te same problemy. Partycja uległa uszkodzeniu, istnieje niewyjaśniony zablokowany plik, jakiś plik ma problem z uprawnieniami, który uniemożliwia usunięcie. Zwykle problem ten można rozwiązać przy ponownym uruchomieniu, ale w tym przypadku, ponieważ jest to krytyczny system, którego nie możemy w czasie produkcji. Na Uniksie możesz po prostu zrobić rm -rf itp. Jest to szybkie i generalnie nie ma z tym żadnego problemu.

BTW - aplikacja jest zmieniana, ale na jakiś czas nie wejdzie do produkcji i myślałem, że ten problem był prawdopodobnie interesujący dla innych.

Aktualizacja - ponieważ mamy system MKS Nutcracker w systemie (bez narzędzi wiersza poleceń), mamy programistę, aby zrzucił prosty rm. Jest to kilka zamówień szybszych niż del / deltree itp. Wydaje mi się dziwne, że nie ma tak prostej aplikacji, która byłaby dostępna jako standardowe narzędzie administracyjne systemu Windows.

David Allan Finch
źródło

Odpowiedzi:

15

Możesz użyć rmdir:

rmdir /s /q FOLDERNAME

Flagi: /soznacza usuwanie rekurencyjne, /qjest trybem „cichym”.

splattne
źródło
Próbowaliśmy tego - dodam więcej do pytania.
David Allan Finch
to powinno ci pomóc. Zadziałało ?
s_ruchit
tak głównie - dodałem, jakie problemy widzieliśmy powyżej w pytaniu. Dzięki za komentarz.
David Allan Finch
Przyjmuję tę odpowiedź. Ale istnieje lepsze rozwiązanie, które polega na użyciu prostszego stylu uniksowego rm, ale ponieważ nie jest to dostępne dla większości użytkowników, jest to najlepszy wybór dla 99% użytkowników. Powinien być zaimplementowany rm w stylu unix dla Windows, który nie robi nic poza rekurencyjnym usuwaniem. BTW nasi programiści MKS remove_tree (patrz wyżej) przebrnęli rmdir, więc problemem nie jest Windows, ale wbudowane aplikacje.
David Allan Finch
6

Zwykle mam ten problem z serwerami, którymi administrowałem. Pomiń całkowicie eksploratora i użyj wiersza polecenia. Przejdź do folderu i „del .

W ten sposób unikniesz narzutu GUI (explorer to trash) i kosza na śmieci.

użytkownik3913
źródło
Próbowaliśmy tego - dodam więcej do pytania.
David Allan Finch
4

O ile nie jest to potrzebne w przypadku starszych aplikacji 16-bitowych, spróbuj zwiększyć wydajność, wyłączając generowanie krótkich nazw plików. Może to mieć znaczący wpływ na operacje katalogowe z dużą liczbą plików.

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

Następnie użyj:

RMDIR / S / Q [dysk:] ścieżka

aby usunąć katalog ze wszystkimi jego plikami.

Peter Stuer
źródło
To jest interesujące wiedzieć.
David Allan Finch
3

Co powiesz na przeniesienie tego folderu tymczasowego na inny dysk / partycję? Zamiast usuwać wszystkie śmieci, możesz sformatować dysk (GUI lub wiersz poleceń). W przypadku szybkiego formatu powinno to być dość szybkie.


źródło
1
Próbowaliśmy tego i czasami to na to nie pozwalało. Klient za każdym razem uruchamia program w innym katalogu.
David Allan Finch
Utwórz twarde łącze między ścieżką a dyskiem, tj .: twardy link „c: \ moja głupia aplikacja \ w którym przechowywane są pliki” wskazuje dysk X: we wsadzie startowej
Nime Cloud
2

Jest to kombinacja poprzednich postów

otwórz okno poleceń:
File -> Run -> cmd

Usuń katalog
rmdir /s /q FOLDERNAME

LUB

Usuń wzór plików
cd \....\directory
del *.[something]

Jak zauważyłeś w swoim pytaniu Eksplorator Windows może naprawdę spowolnić proces.

Po obejrzeniu aktualizacji mam jeden z moich własnych produktów
Sprawdź tę listę programów do usuwania plików

Brad Bruce
źródło
Zauważyłem to z kilkoma setkami plików w przeszłości. Szkoda, że ​​eksplorator może zrobić to tak szybko, jak aplikacje z linii poleceń - moglibyśmy skłonić klienta do zrobienia tego sam. Dziękuję za odpowiedź.
David Allan Finch
1

Nie mam nic lepszego niż del i rm, ale nawet jeśli zajmują bardzo dużo czasu, nie powinno to prowadzić do uszkodzenia partycji. Zablokowane pliki mogą być spowodowane tym, że program, który je utworzył, nieoczekiwanie zmarł.

Czasami, chociaż plików nie można usunąć, można je przenieść do innego tymczasowego podkatalogu. Po prostu tworzę podkatalog _todel i tam go przenoszę. Zwykle działa to lepiej, jeśli przesunę cały katalog o jeden poziom wyżej niż same pliki.

Poza tym jedynym sposobem na przyspieszenie usuwania jest defragmentacja dysku twardego. Tymczasowym obejściem może być przeniesienie tego katalogu do udziału samby lub użycie złącza NTFS do przenośnego dysku twardego USB. (Mała partycja byłaby lepsza i szybsza niż używanie całego dysku twardego). Następnie możesz po prostu wysunąć dysk twardy i wykonać szybki format na innym komputerze.

Chayim
źródło
Tak myślę - IE uszkodzonych plików, ale dlaczego nie są one zamykane przez jądro NT? Szybkość jest problemem w programie, więc używanie Samby lub dysku twardego USB nie uruchamia się. Ale klientowi zaproponowano utworzenie osobnej partycji dla każdego uruchomienia i sformatowanie. Nie jestem pewien, czy już tego próbowali. - Dzięki
David Allan Finch
1

Uszkodzona partycja z usuwania plików? To poważny problem z dyskiem, niezależnie od liczby usuwanych plików.

Spróbowałbym usunąć z wiersza poleceń i usunąć jak najwięcej, dopóki nie natkniesz się na taki, który jest zablokowany. Następnie użyj Eksploratora procesów, aby znaleźć proces, w którym ten plik jest otwarty. Zabij ten proces (jeśli możesz), a następnie ponownie wykonaj usuwanie. Spłucz, powtórz :)

DougN
źródło
Chciałbym tego spróbować, ale nie mamy bezpośredniego dostępu do maszyny, a aplikacja nie działa. W każdym razie dzięki.
David Allan Finch
1

Uruchom ponownie przy użyciu „Live” dysku CD z systemem Linux, rm -rf


źródło
Nie możemy po prostu zrestartować tego serwera, ponieważ jest to krytyczne dla klienta - ale dziękuję za odpowiedź.
David Allan Finch
1

Trochę hacky, ale możesz stworzyć skrypt, który będzie fragmentem usuwać pliki, nie znam formatu, ale zakładając, że pliki zaczynają się od liter az, możesz to zrobić

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

zmień deltree za pomocą wybranej metody usuwania. prawdopodobnie będzie wolniejszy, ale mniej podatny na błędy?

sidenote: możesz także spróbować zainstalować cygwin, aby uzyskać polecenia takie jak rm, które prawdopodobnie kontynuowałyby usuwanie plików nawet po napotkaniu błędu z jednym plikiem.

Roy Rico
źródło
To zostało wypróbowane, ale tak naprawdę nie rozwiązało problemu - i tak dzięki.
David Allan Finch
Mamy również zainstalowany MKS Nutcracker, ale ze względów bezpieczeństwa narzędzia wiersza poleceń zostały usunięte - nie ma wyboru. Ale to, co zrobiliśmy, zostało zapisane przez nasz system operacyjny i to działa.
David Allan Finch
1

Różne metody przede wszystkim działają. Jeśli masz cygwin załadowany na pendrive, możesz po prostu podłączyć go do lokalnego USB, odpalić swoją powłokę cygwin i uruchomić komendę RM zgodnie z powyższym opisem. Jest to przydatny sposób na trzymanie pod ręką elastyczności uniksowej.

użytkownik13846
źródło
Jest to rozsądne rozwiązanie do zarządzania systemem.
David Allan Finch
1

Możesz także uruchomić system w konsoli odzyskiwania lub coś podobnego. To powinno całkowicie zignorować wszelkie dziwne problemy z systemem operacyjnym.

Yannone
źródło
Przepraszamy, nie możemy po prostu zrestartować serwera, ale dziękuję za odpowiedź.
David Allan Finch
1

Zamontuj folder z komputera z systemem Linux i stamtąd usuń go rekurencyjnie.

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

# rm /mnt/tobedeleted/* -R

Możesz nawet użyć zadania cron do usuwania plików w regularnych odstępach czasu.

Steve
źródło
próbowałeś tego?
David Allan Finch,
1

Dlaczego nie skorzystać z robocopy i stworzyć kopię lustrzaną pustego katalogu?

Po prostu utwórz pusty folder, a następnie użyj:

ROBOCOPY C:\ThisIsAnEmptyFolder C:\Users\SomeUser\Desktop\SomeFolderWithTempFiles /MIR
NotoriousPyro
źródło
0

Jeśli żadna z pozostałych sugestii nie działa, czy rozważałeś przyspieszenie operacji wejścia / wyjścia?

Kup lepsze kontrolery, szybsze dyski ..

Czy zastanawiam się, czy jeśli pliki są tymczasowe (jak sugerujesz) i pozwalają na to rozmiary, możesz dodać dodatkową pamięć RAM do pudełka (tanie) i skonfigurować dysk RAM?

Najlepszy przypadek, wydajność nie ulegnie pogorszeniu podczas usuwania dużych ilości plików. W najgorszym przypadku ponowne uruchomienie wyczyści partycję.

tomfanning
źródło
Uwielbiam to, ale nie sądzę, że klient wystrzeli, ponieważ oczekują nowej wersji programu - dzięki za odpowiedź.
David Allan Finch
Pamięć RAM serwera w Wielkiej Brytanii wynosi obecnie około 10 GBP za gigabajt.
tomfanning
To prawda, ale klient płaci X za maszynę (z oferty) i nie widzi powodu, aby wydawać Y więcej.
David Allan Finch
Ponieważ określony serwer nie wykonuje zadania wystarczająco dobrze?
tomfanning
Jest wystarczająco dobry do pracy. Problem polega na tym, że program ma błąd, który jest w trakcie naprawy. Nie zamierzają wydawać więcej pieniędzy.
David Allan Finch
0

Spróbuj wyciąć i wkleić go do kosza, powinien ominąć próbę przeniesienia każdego pojedynczego pliku. Nie jestem jednak pewien, co zrobi, aby opróżnić pojemnik, ponieważ wtedy prawdopodobnie przejdzie on przez każdy plik.

Erwin Blonk
źródło
Myślę, że klient tego próbował i nie było to dużo lepsze niż normalne używanie Eksploratora. Dzięki
David Allan Finch
0

Czy usunięcie za pomocą SHIFT + DEL ma jakikolwiek wpływ na szybkość?

Kevin Kuphal
źródło
Kiedy próbowałem tego ostatniego, było tak samo.
David Allan Finch
W rzeczywistości po prostu spróbowałem ponownie - ze starą instalacją i wciąż czekam. Prawdopodobnie się poddam i użyję MKS rm.
David Allan Finch,