![]() |
проблема удаления множества файлов с длинным путем
Добрый день!
нужно на файловом хранилище (огромная куча папок и подпапок) удалить все файлы определенного типа вот пример того что забиваю в командную строку cd /d C:\files del /s /q *.doc но на некоторых файлах с длинным путем, вся операция прекращается и дальше не идет, пока проблемный файл не будет удален вручную. но таких длинных файлов очень много и вручную уже не поудаляешь. есть ли какое-нибудь решение? |
kupall,
попробуй работать с короткими именами (преобразуй длинные) |
kupall, а что,
cmd /c Del /S /Q /A \\.\C:\files\*.doc (начало до Del – для возможности запуска команды не в окне CMD, а по Win+R, и в батнике не нужно. Ключ /A – для удаления в т.ч. скрытых файлов) тоже не работает? |
все равно не получилось, застревает на одном файле и прекращает операцию
а что означает выражение \\.\ а то нагуглить не получается |
Цитата:
Скрытый текст
Цитата:
Для общего обзора также имеет смысл: How NTFS Works: Local File Systems. |
kupall, я бы ещё попробовал volume'овский префикс \\?\<Volume GUID>\<Very long path>. Т.е., сначала определяете ссылку посредством «mountvol.exe»:
Код:
mountvol.exe c: /l Код:
del /s /q /a "\\?\Volume{19a771ac-c879-11df-867c-806dbcd2696f}\files\*.doc" |
Вдобавок Как обойти ограничение на длину пути при создании или копировании файла (и удаления тоже)
|
Vadikan, в данном случае проблема не в том, как сделать, а в том, как сделать массово. Так-то можно хоть subst пользовать для сокращения пути.
|
Robocopy умеет работать со сверхдлинными путями файлов. Robocopy встроен во все более-менее свежие системы Windows.
Создайте пустую папку и синхронизируйте с той папкой, где файлы нужно удалить. (ключ, кажется, называется /MIR) синтаксис |
DJ Mogarych, мне что-то не удаётся составить корректный синтаксис с маской — удаляется всё, отсутствующее в назначении.
|
Переместите их в другую папку, а там удалите:
Код:
ROBOCOPY sourcedir destdir *.avi *.doc /mov |
Время: 00:10. |
Время: 00:10.
© OSzone.net 2001-