Який найкращий спосіб видалити 100 000 файлів із каталогу Windows


12

У мене був користувач з більш ніж 100 000 файлів в одному каталозі. Машина замикається та стає непридатною протягом тривалого часу, поки Провідник заповнює пам'ять, і машина може вийти з ладу. Чи є простий спосіб скидання каталогу та вмісту? Ми намагалися використовувати deltree командного рядка, і це не виглядало набагато краще.

DaveF

Додатково -

У нас була ця проблема кілька разів з одним і тим самим користувачем (власне клієнтом). Програма створює 100 тисяч тисяч тимчасових файлів під час її запуску. Якщо програма працює правильно, це не має значення, оскільки вони видаляються сповільнюючись, оскільки це закінчено з цим. Але раз у раз вона вмирає, залишаючи безлад файлів. Ми спробували використовувати rmdir і del etc. методи, і вони швидше, ніж використання Explorer, але, як правило, виникають ті самі проблеми. Розділ пошкоджується, є незрозумілий заблокований файл, у деякому файлі є проблема дозволу, яка зупиняє роботу видалення. Зазвичай ці проблеми можна вирішити за допомогою перезавантаження, але в цьому випадку, оскільки це критична система, ми не можемо у виробничий час. У Unix ви можете просто зробити rm -rf і т. Д., І це швидко, і справді проблем із цим немає.

BTW - додаток змінюється, але це колись не піде у виробництво, і я хоч ця проблема, мабуть, була цікавою для інших.

Оновлення - оскільки у нас в системі MKS Nutcracker (без утиліт командного рядка) ми отримали програміста, щоб збити разом просту RM. Це на кілька замовлень швидше, ніж del / deltree і т. Д. Мені здається дивним, що немає такого простого додатка, який легко доступний, як стандартний інструмент адміністратора системи Windows.


Відповіді:


15

Ви можете використовувати rmdir:

rmdir /s /q FOLDERNAME

Прапори: /sозначає видалення рекурсивно, /qце "тихий" режим.


Ми це спробували - я додам ще питання.
Девід Аллан Фінч

це повинно було працювати для вас. Це спрацювало ?
s_ruchit

так, головним чином - я додаю, які проблеми ми бачили вище у питанні. дякую за ваш коментар
Девід Аллан Фінч

Я прийму цю відповідь. Але є краще рішення, яке полягає у використанні більш простого стилю unix rm, але оскільки це не є доступним для більшості користувачів, це найкращий вибір для 99% користувачів. Для Windows повинен бути реалізований стиль unix, який не робить нічого іншого, а лише рекурсивно видаляє. До речі, наші програмісти MKS remove_tree (див. Вище) розгромили rmdir, тому проблема не в Windows, а вбудованих додатках.
Девід Аллан Фінч

6

У мене є ця проблема з серверами, якими я керував. Пропустіть Explorer цілком і скористайтеся командним рядком. Перейдіть в папку і «Del . »

Таким чином ви уникнете накладних витрат графічного інтерфейсу (explorer - сміття) та сміттєвого бака.


Ми це спробували - я додам ще питання.
Девід Аллан Фінч

4

Якщо вам це не потрібно для застарілих 16-бітних програм, спробуйте збільшити продуктивність, відключивши генерацію коротких імен файлів. Це може мати значний вплив на операції з каталогами з великою кількістю файлів.

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

Потім використовуйте:

Шлях RMDIR / S / Q [диск:]

щоб видалити каталог з усіма його файлами.


Це цікаво знати.
Девід Аллан Фінч


3

Як щодо переміщення цієї темп-папки на інший диск / розділ? Замість видалення всього сміття ви можете відформатувати диск (або GUI, або командний рядок). При швидкому форматі це має бути досить швидко.


1
Ми намагалися це робити, і іноді це не дозволяло. Тепер клієнт щоразу запускає програму в інший каталог.
Девід Аллан Фінч

Створіть жорстке посилання між контуром та диском, тобто: жорстке посилання "c: \ мій нерозумний додаток \, де зберігаються файли" вказує диск X: у пакеті запуску
Nime Cloud

2

Це поєднання попередніх дописів

відкрити вікно команд:
File -> Run -> cmd

Видаліть каталог
rmdir /s /q FOLDERNAME

АБО

Видаліть шаблон файлів
cd \....\directory
del *.[something]

Як ви зазначали у своєму запитанні, Windows Explorer дійсно може сповільнити ситуацію.

Побачивши ваше оновлення, у мене є власний
перегляд цього списку видалень файлів


У минулому я помічав це, маючи лише кілька сотень файлів. Прикро, що дослідник може зробити це так швидко, як і програми командного рядка - вони могли б змусити клієнта зробити це самостійно. Дякую за вашу відповідь.
Девід Аллан Фінч

1

У мене немає нічого кращого, ніж del і rm, але навіть якщо вони знадобляться дуже довго, це не повинно призвести до пошкодження розділів. Заблоковані файли можуть бути через те, що програма, яка їх створила, несподівано померла.

Іноді, хоча файли неможливо видалити, їх можна перенести в інший тимчасовий підкаталог. Я просто створю підкаталог _todel і переміщу їх туди. Зазвичай це краще, якщо я переміщую весь каталог на один рівень вгору, а не самі файли.

Крім цього, єдиний спосіб прискорити видалення - це дефрагментація жорсткого диска. Тимчасовим способом вирішення може бути переміщення цього каталогу до спільної частини samba або використання переходу NTFS на портативний жорсткий диск USB. (Невеликий розділ був би кращим і швидшим, ніж використання всього жорсткого диска). Потім ви можете просто вийняти жорсткий диск і зробити швидкий формат на іншому ПК.


Саме так я думаю - IE пошкоджені файли, але чому вони не закриті ядром NT? Швидкість - проблема з програмою, тому використання Samba або USB жорсткого диска не є стартером. Але клієнту було запропоновано створити окремий розділ для кожного запуску та переформатувати. Не впевнений, чи намагалися вони ще. - Дякую
Девід Аллан Фінч

1

Пошкоджений розділ при видаленні файлів? Це основна проблема диска, незалежно від кількості видалених файлів.

Я б спробував командний рядок видалити та видалити стільки, скільки ви можете, поки ви не наткнетесь на заблокований. Потім скористайтеся Провідником процесів, щоб знайти, у якому процесі відкритий цей файл. Вбийте цей процес (якщо зможете), а потім виконайте видалення ще раз. Промийте, повторіть :)


Хотіли б спробувати це, але у нас немає прямого доступу до машини, і програма загинула. Все одно, дякую.
Девід Аллан Фінч

1

Перезавантажте компакт-диск з "Live" Linux, rm -rf


Ми не можемо просто перезавантажити цей сервер, оскільки це важливо для клієнта - але дякую за відповідь.
Девід Аллан Фінч

1

Якийсь хакі, але ви можете створити сценарій, який буде чітко видаляти файли, я не знаю формату, але припускаючи, що це файли, що починаються з літер аз, ви можете зробити

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

змінити дельтрей за вибором способу видалення. напевно, повільніше, але менше схильних до помилок?

Sidenote: Ви також можете спробувати встановити Cygwin , щоб отримати такі команди , як гт , які , ймовірно , , продовжуватимуть видалення файлів навіть після того, виявлять помилку з одним файлом.


Це було випробувано, але це насправді не вирішило проблеми - все одно дякую.
Девід Аллан Фінч

У нас також встановлений MKS Nutcracker, але з міркувань безпеки утиліти командного рядка, де видалено - не вибір. Але те, що ми зробили, - це виписано власну rm, і це справді працює.
Девід Аллан Фінч

1

Різні методи, перш за все, працюють. Якщо у вас є цигун, завантажений на палець, ви можете просто підключити його до локального USB, запустити оболонку cygwin і запустити команду RM, як зазначено вище. Це зручний спосіб зберегти гнучкість Unix під рукою.


Це розумне рішення, коли ви керуєте системою.
Девід Аллан Фінч

1

Ви також можете завантажитися в консоль відновлення або щось подібне. Це повинно повністю ігнорувати будь-які дивні проблеми з ОС.


На жаль, ми не можемо просто перезавантажити сервер, але дякуємо за відповідь.
Девід Аллан Фінч

1

Змонтуйте папку з машини Linux і виконайте рекурсивне видалення звідти.

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

# rm /mnt/tobedeleted/* -R

Ви навіть можете використовувати завдання cron для регулярного видалення файлів.


ви пробували це?
Девід Аллан Фінч

1

Чому б не просто використати роботокопію та дзеркало порожнього каталогу?

Просто створіть порожню папку та скористайтеся:

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

0

Якщо жодна з інших пропозицій не працює, чи вважали ви прискорити введення-виведення?

Купуйте кращі контролери, швидші диски ..

Або мені цікаво, якщо файли тимчасові (як ви розумієте) і розміри дозволяють, ви можете додати додаткову оперативну пам’ять у поле (дешево) та встановити диск RAM?

У кращому випадку продуктивність не буде погіршуватися при видаленні великих томів файлів. Найгірший випадок, перезавантаження очистить розділ.


Я люблю, але я не думаю, що клієнт розгортається, оскільки очікує на нову версію програми - дякую за відповідь.
Девід Аллан Фінч

Оперативна пам’ять сервера у Великобританії зараз становить близько 10 GBP за гігабайт.
туманність

Щоправда, але замовник платить X за машину (з пропозиції) і не бачить причин витрачати Y більше.
Девід Аллан Фінч

Тому що вказаний сервер не виконує цю роботу досить добре?
tomfanning

Це досить добре для роботи. Проблема в тому, що програма має помилку, яка знаходиться в процесі виправлення. Вони більше не збираються витрачати гроші.
Девід Аллан Фінч

0

Спробуйте вирізати і вставити його в кошик, він повинен обходити спробу переміщення кожного файлу. Не впевнений, що це зробить для випорожнення кошика, тому що тоді він, ймовірно, перейде через кожен файл.


Я думаю, що клієнт це спробував, і це було не набагато краще, ніж звичайно використовувати Explorer. Спасибі
Девід Аллан Фінч

0

Чи має значення видалення за допомогою SHIFT + DEL щодо швидкості?


Коли я його спробував останній, це було майже те саме.
Девід Аллан Фінч

Насправді я просто спробував це ще раз - зі старою установкою і все ще чекаю. Я, мабуть, відмовиться від використання MKS rm.
Девід Аллан Фінч
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.