Как удалить каталоги с путями / именами слишком длинными для нормального удаления


380

Похоже, что Windows пытается ограничить имена файлов при удалении, хотя это не помешает созданию этих файлов.

Наш процесс сборки создает несколько временных файлов (многие из которых основаны на WSDL), которые выходят за пределы этого ограничения. Наш скрипт ant каким-то образом может удалить их при выполнении очистки, но иногда мне нужно удалить каталог workarea (куда идут все временные файлы), фактически не выполняя полную очистку от ant.

Это те же ошибки, что и в этом вопросе , но ответы на них на самом деле не работают для меня, поскольку я имею дело с каталогом, а не с файлом, и я не всегда знаю, какие именно файлы или подкаталоги вызывают проблему. И я пытаюсь избежать любого ручного процесса (кроме запуска одной команды), чтобы фактически удалить их.

Если я пытаюсь удалить каталог из Проводника, я получаю сообщение об ошибке

Cannot delete [file name]: The file name you specified is not valid or too long.  
Specify a different file name

Попытка Remove-Itemв powershell выдает следующую ошибку:

Remove-Item : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
At line:1 char:12
+ Remove-Item  <<<< -force -Recurse <directory>

Кто-нибудь знает какие-либо инструменты или простые способы обойти эту ошибку удаления без необходимости вручную находить проблемные файлы и перемещать / переименовывать их?


2
Я нашел решение незадолго до публикации этого вопроса, но, поскольку другие могут столкнуться с этим, я решил опубликовать его, чтобы они могли найти решение, с которым я столкнулся.
Herms

О, я знаю, но обычно, когда я делаю подобные вещи, я оставляю вопрос без ответа на некоторое время, чтобы посмотреть, найдется ли у кого-нибудь еще лучшее решение.
Herms

К Far простейшего решения: youtube.com/watch?v=qQTyTprFAOg
TAW

используя Ubuntuили любой другой, который Linux Bootable CDмы можем загрузить наш компьютер Ubuntuили любую другую ОС для временного. Затем мы можем выбрать папку, и мы можем легко удалить ее.
Келум Приядаршане

1
На этот старый вопрос тоже есть несколько интересных ответов: superuser.com/questions/45697/…
AdamV

Ответы:


421

Используйте 7-Zip File Manager, чтобы удалить их.

Если у вас все еще есть проблемы, убедитесь, что вы используете Shift+ Deleteв 7-Zip File Manager. В противном случае Windows попытается переместить их в корзину (что снова приведет к сбою).


5
Спасибо - это избавилось от дерева каталогов, которое стало немного рекурсивным и слишком глубоким для удаления del / rmdir / rm / explorer
Мартин Беккет

63
отлично работал, используя shift + Del - 7zip не смог отправить файлы с длинным патчем в корзину ....
Cori

66
+1 7zip. Вы должны перейти к папке, а затем использовать, shift + Delкак сказал @cori. Если вы выберете Deleteопцию из контекстного меню, она НЕ БУДЕТ там неудачной. shift + DelЭто!
Урда

8
7zip не работал на win7 64, так что Linux работал.
Эрик Фризен

13
Я приветствую это, потому что с помощью 7zip вы можете удалить и удалить папку, в которой находятся длинные вложенные папки. У меня была проблема с папкой node_module, которая содержала кучу вложенных папок, и я не смог ее удалить. 7zip исправлен из базовой папки без нареканий. +1
Грубер

310

Ни один из других (бесплатных) ответов здесь не работал для меня, но я нашел один на другом сайте:

rimraf <dir>

rimraf - это пакет Node.js , поэтому вам необходимо установить Node.js, включающий npm . Тогда вы можете запустить:

npm install -g rimraf

Затем вы можете запустить rimrafиз командной строки.

Я нашел это решение, потому что сам npm вызывал эту проблему из-за того, как он вкладывает зависимости.

Кстати, rimrafполучает свое имя от команды UNIX rm -rf, которая рекурсивно удаляет файлы и папки.


7
Перепробовал много способов. Это просто отлично работает!
Duckegg

2
Лучший ответ из всех :) да, это просто чудовище
Аль-Мотафар

2
Это должен быть принятый ответ.
NINCOMPOOP

13
Ваше решение работает, но это так круто, что мне нужно использовать модуль узла js для удаления папок узлов модуля js ... Я больше не хочу жить на этой планете
Benoit P

4
Node создал проблему в первую очередь для меня так ... интересно ... что у них тоже есть решение.
Эрик Дж.

141

Для решения этой проблемы нет необходимости устанавливать какую-либо программу .

Эта проблема легко решается с помощью robocopyпредустановленной версии Windows Vista, выпущенной в 2006 году.

Например, rmdir /S /Q <dir>сообщалось о сбое в некоторых случаях. Нет необходимости использовать 7zip или любой другой сторонний инструмент. Powershell - это излишество. Cygwin может работать, но вы можете не установить его. Итак, давайте сосредоточимся наrobocopy

Идея состоит в том, чтобы

  1. использовать robocopyдля копирования + обновлено
  2. из новой пустой папки
  3. в папку, которую вы хотите удалить, цель.

После выполнения robocopyцелевой каталог также будет пустым.

Эти инструкции для командной строки. Просто откройте поиск в Windows, введите cmdи нажмите Enter.

Допустим, цель для удаления:

C:\delete\this folder\with a very long name

Мы действуем следующим образом:

  1. Сначала создайте пустой каталог, fi C:\emptyfolder.

    mkdir C:\emptyfolder
    
  2. Копировать + обновить из пустой директории до цели, используя опцию /purge

    robocopy c:\emptyfolder "C:\delete\this folder\with a very long name" /purge
    
  3. Удалить пустой каталог. Тебе это больше не нужно.

    rmdir c:\emptyfolder
    

Поскольку в исходном каталоге ( C:\emptyfolder) нет файлов или папок , он просто C:\delete\this folder\with a very long nameрекурсивно удаляет файлы и папки в целевом каталоге ( )!

  • Последний трюк: вы можете избежать написания от руки

    C:\delete\this folder\with a very long name
    

    Перетаскивая папку из окна проводника и опуская в окно терминала / cmd.

Будьте осторожны : удаленные файлы не попадут в корзину ! После удаления файлы не могут быть восстановлены.

(Взято из «Путь слишком длинный? Используйте Robocopy» от BVLANGEN )

PS: я понимаю, что этот ответ был здесь, менее дидактически. Как удалить файл в Windows со слишком длинным именем файла? [дубликат]

Бенуа добавил:

Возможно, вам придется пройти через этот процесс более одного раза, чтобы избавиться от всех файлов.


11
Спасибо, сэр! Это должен быть принятый ответ, так как все остальные либо не работают, либо требуют стороннего инструмента . :)
MickyD

Это работает отлично ... не нужно ничего устанавливать (насколько я знаю), и это быстро. Это должен быть принятый ответ!
ksumarine

1
Это сохраняет некоторые (или все) дерева каталогов в «c: \ deletefolder» (target dir). В любом случае, я удалил все за мгновение (думаю, файлы были маленькими), и мне просто пришлось вручную <Del> "c: \ deletefolder", дочерние каталоги были удалены без проблем. Работал как шарм. +1, должен быть принятый ответ! :)
RLD.

@rld, но существовал ли ранее "deletefolder"? В противном случае, я думаю, что он должен быть пустым, если это был новый каталог. В противном случае это беспорядок. Я мог бы добавить последний шаг для «rmdir deletefolder».
hectorpal

1
При работе с высокорекурсивными каталогами эта опция намного медленнее, чем 7zip. После 20 минут ожидания я проверил их и понял, что такое 7zip, хотя и не показывает, что прогресс был в 50 раз быстрее.
Энди Гог

84

Я считаю, что нашел способ удалить вещи из cmd. Первоначально я попробовал delкоманду, но это не сработало. Потом я вспомнил rmdir. Делать следующее:

rmdir /S /Q <dir>

похоже, сработало.


105
Не работал для меня :(
Эндрю Арнотт

не забудьте заглянуть в cmd, прежде чем пытаться запустить rmdir.
brianpeiris

8
Для тех, кто не может использовать это решение, у меня есть альтернативное решение, которое сработало для меня (со слишком длинными путями / именами файлов): переместите каталог (ы) / каталог / каталог в C: \, чтобы сократить путь, затем удалите оттуда.
Андерс Сандберг Нордбо

6
Возможно наличие каталогов, для которых это решение не подойдет, которые 7-Zip может удалить. Я только что это случилось со мной.
SamStephens

2
Это решение - получение противоречивых результатов. Пожалуйста, не голосуйте.
Hectorpal

29

Инструмент, который я использовал, когда у меня была эта проблема, был FastCopy . Я выбрал « Удалить все» из выпадающего списка, выбрал каталог, который хотел удалить, и нажал « Удалить все» .

Скриншот диалога удаления FastCopy

FastCopy переносим (установка не требуется), и доступны 32-битные и 64-битные версии.


3
Если вы ищете инструмент командной строки, вы можете использовать небольшой инструмент, который я опубликовал на GitHub ( github.com/epsitec/Tools-RecursiveDelete ).
Пьер Арно

У меня был рекурсивно сгенерированный набор вложенных файлов / папок. Это было единственное работающее решение
Пьерлуиджи

2
Это сработало для меня, когда, командная строка не удалась, попытка 7zip не удалась. и даже поддержка Microsoft была поставлена ​​в тупик!
Кит Рамос

То же самое и здесь - я вроде начал удалять файлы с помощью 7zip, но это также выглядело очень странно, и мне приходилось несколько раз подряд Shift + удалять каждый каталог, чтобы фактически удалить его, но затем я попробовал этот инструмент и работал как чудо , Запустил его дважды, чтобы избавиться от всех файлов. Спасибо!
Артанис

Спасибо, для меня также единственное рабочее решение, БОЛЬШОЕ !!!!
Тим

26

Без установки дополнительного программного обеспечения вы можете использовать substкоманду для временного создания псевдонима с длинным именем каталога.

Например, если вы хотите удалить папку, C:\Very long directory\that exceed\length limit\blah blah blah\abcde\folder to be deletedвы можете использовать команду

subst x: "C:\Very long directory\that exceed\length limit\blah blah blah\abcde"

а затем вы можете легко удалить X:\folder to be deletedв проводнике Windows или в командной строке. Чтобы удалить временный псевдоним диска, используйте команду

subst x: /d

Я попробовал все остальные ответы (включая ответы на другие подобные вопросы), и это был единственный, который работал на меня. И это было безусловно самым быстрым.
glenneroo

1
Это, безусловно, лучший ответ: простые встроенные функции, без проблем с реестром. Должен быть принятый ответ.
Кевин Рош

Легко самый чистый и самый простой метод, спасибо Кеннет.
Сет

Э-э, этот ответ пугает меня, потому что у меня действительно есть диск X :. Здесь недостаточно информации, и я не рекомендую людям следовать этому без дальнейшего объяснения.
qodeninja

25

Cygwin's rm -rfхорошо работает на длинных путях!


3
Cygwin отлично сработал для меня! Просто сделал -rm -rf и все файлы были удалены.
Ранхиру Джуд Курай

3
У меня тоже работал под GNU bash, версия 4.1.10 (4) -релиз
анонимный

2
Отлично работал при запуске из окна команд Git Bash. Я установил GitGui для этого.

22

Просто перейдите из Powershell в команду, запустив ниже:

Cmd /C "rmdir /S /Q <dir>" 

3
Msgstr "Каталог не пустой". К сожалению. ОП хочет удалить непустую папку.
leye0

как это отличается от ответа @herms?
bigbadmouse

18

Решение Dentrasi - это то, что сработало для меня лучше, но я хотел опубликовать конкретные шаги в ответе на высшем уровне.

  1. Загрузите и установите последнюю стабильную сборку 7zip .
  2. Запустите 7zip File Manager ( 7zfm.exe ).
  3. В диспетчере файлов 7zip перейдите, чтобы увидеть имя папки, которую вы хотите удалить (т.е. вы находитесь в родительской папке).
  4. Удерживайте кнопку Shift.
  5. Нажмите кнопку « Удалить » на клавиатуре или на панели инструментов 7zip File Manager; убедитесь, что вы все еще удерживаете клавишу Shift .
  6. Нажмите кнопку « ОК »; убедитесь, что вы все еще удерживаете клавишу Shift .

Хорошая попытка, но у меня все еще не получилось с 10-ю рекурсивными папками. Работал только римраф.
Джулиан Найт

@JulianKnight: Да, этот подход не работал для меня в 100% случаев. Я просто хотел упомянуть об этом, потому что это был один из самых простых процессов, и он работал по крайней мере часть времени. Единственное, что я обнаружил, что это работает в 100% случаев, это подход со скриптом модуля Powershell + NTFSSecurity, который я описал ниже. IIRC rimraf потерпел неудачу при вызове, и именно так я и попал в этот беспорядок. Подробности смотрите в этой ветке Node.js: github.com/nodejs/node-v0.x-archive/issues/…
Mass Dot Net,

Да, такие проблемы всегда будут. На самом деле это был код установки библиотеки Arduino IDE, который сделал меня в (Java), я случайно выбрал папку, содержащую библиотеки, в качестве папки для установки библиотеки и отключил ее! Я убил процесс, как только понял, но уже имел 10 из k папок (черт i7 / SSD!). Следующий основной выпуск NPM призван помочь решить многие глубокие проблемы установки библиотеки для Node, так как зависимости должны быть удовлетворены от гораздо более плоская структура. И все же я очень рад, что кто-то посадил меня на Римрафа - легко и бесплатно.
Джулиан Найт

@JulianKnight - Да, день или два назад кто-то сказал мне, что npm3 должен помочь облегчить эти проблемы, предотвращая глубоко вложенные структуры папок зависимостей.
Mass Dot Net

Не знаю, «предотвращает» ли это, но более разумно относится к вложенным зависимостям, так что если вашему основному приложению требуется библиотека X v1.0, а библиотеке Y требуется Z, для которой также требуется X v1.0, будет использоваться библиотека верхнего уровня. В настоящее время Z установит свою собственную версию X.
Джулиан Найт,

11

Есть две вещи, которые еще не упомянуты в существующих ответах.

  1. Вы можете использовать расширенный префикс длины пути для доступа к длинным путям
  2. В Windows 10 вы можете включить поддержку длинных путей для общего использования - однако учтите, что не все приложения будут работать с длинными путями, вам следует протестировать более старое программное обеспечение. Только программное обеспечение с соответствующей записью манифеста сможет использовать это.

Длинный путь префикса

Windows API имеет специальную функцию, которая поддерживает имена путей Unicode длиной до 32 тыс. Символов (каждый элемент длиной до 255 символов).

Это часто ошибочно называют UNC-именами, но это не так.

Префикс, используемый для указания API использовать длинные пути Unicode, выглядит \\?\так:

\\?\D:\very long path

Имена UNC обычно используются при обращении к путям на удаленных серверах в форме \\servername\path name\file name. Вы можете комбинировать это с префиксом длинного пути так:\\?\UNC\server\share

Обратите внимание, что некоторые плохо написанные, но, к сожалению, довольно распространенные приложения не поддерживают пути к файлам UNC и префикс длинных путей.

Ссылка: https://msdn.microsoft.com/en-gb/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath

Поддержка длинного пути

Эта опция была добавлена ​​в последние версии Windows 10. На момент написания этой статьи она не была активирована по умолчанию, поскольку для нее требуется поддержка определенных приложений. Интересно, что PowerShell имеет встроенную поддержку, поэтому включение этой опции позволит использовать длинные пути непосредственно в сценариях PowerShell.

Вы можете активировать его через редактор групповой политики, если у вас есть версия Windows с этим. Или вы можете просто использовать следующее изменение реестра. Как всегда, пожалуйста, сделайте резервную копию раздела реестра, который вы меняете, прежде чем что-либо делать.

  1. Беги regedit.exe.
  2. Подтвердите подсказку UAC.
  3. Перейдите к ключу: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies
  4. Создать или изменить ключ LongPathsEnabled.
  5. Если он не существует, щелкните правой кнопкой мыши Policies и выберите New> Dword (32-bit) Value из меню.
  6. Набор LongPathsEnabledдля 1включить.

Любые приложения с соответствующими записями манифеста теперь будут иметь доступ к стандартным длинным путям POSIX. Это должно включать приложения Магазина Windows.

Ссылка: https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/

ОБНОВЛЕНИЕ 2017-04-09

@maoizm указал на проблему с разделом реестра выше, поэтому я немного покопался . Похоже, теперь вы можете установить поддержку длинных имен файлов с помощью системного ключа:

HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)

Это все еще работает только для приложений, которые специально настроены на его использование (требуется запись в manifest.xml приложения).

Вы должны также отметить, что вы не можете использовать относительные имена путей с этим методом.


{48981759-12F2-42A6-A048-028B3973495F}Machineчасть пути к реестру будет отличаться на каждом компьютере - это может быть не очевидно для всех
maoizm

1
@maoizm - хороший момент, спасибо, что выделили это. Пожалуйста, смотрите мое обновление для альтернативы, если используется обновление W10 Anniversary или позже.
Джулиан Найт

Я пишу библиотеку под названием FoundationIO, и я пытаюсь сделать длинный путь по умолчанию, есть ли какая-либо функция, которую я могу вызвать, или макрос, который я могу установить, чтобы сделать поддержку длинного пути автоматически включенной для любого пользователя моей библиотеки?
MarcusJ

Привет, Маркус, это родная библиотека Windows? Если это так, то в .NET уже имеется необходимая поддержка в составе соответствующего API Windows - извините, я не знаю подробностей, поскольку я не являюсь программистом API .NET или Win, но детали должны быть доступны для поиска в MSDN.
Джулиан Найт

8

Мне нравится решение CMD. Хотя я хочу поделиться другим обходным путем, который работает даже в обычном проводнике: попробуйте сократить имена родительских папок перед удалением: более короткие имена сократят путь. Скажем, у вас есть эта древовидная структура папки:

C: \

.. Проекты

.. .. Некоторые удивительные проекты весной 2014 года

.. .. .. Активность в парке в городе в пятницу

.. .. .. .. бла бла бла бла бла бла бла бла бла бла бла бла бла бла

.. .. .. .. .. Актуальные файлы с длинными именами тоже

В этом случае вы не можете удалить папки, вы не можете удалить или переименовать файлы ни. Если вы хотите удалить всю структуру папок или ее часть, вы можете временно переименовать родительские папки и сократить путь, а затем удалить папку. Имена могут быть просто буквами:

C: \

.. Проекты

.. .. Икс

.. .. .. у

.. .. .. .. з

.. .. .. .. .. Актуальные файлы с длинными именами тоже

В моем случае я просто хотел удалить всю папку со многими подпапками и файлами. Поэтому меня не заботили названия папок.


1
Я написал крошечный инструмент, который делает это, и поместил его на GitHub. github.com/epsitec/Tools-RecursiveDelete
Пьер Арно

1
Все команды или Shift + DEL не работают для меня, но это работает.
Larkee

На самом деле не работает, когда у вас есть 10 k вложенных папок
Джулиан Найт

также не работает, если одна из папок имеет действительно длинное имя (вы не можете переименовать папку, которая вас обидела).
обыкновенная

7

7-почтовое решение прекрасно работает. Другой вариант, если у вас установлен git - открыть оболочку bash и использовать:

rm -f

(или rm -rfдля папок)


1
Для непосвященных, пожалуйста, объясните, как вы "открываете оболочку bash" в Windows?
OMY

1
@OMY тебе нужен git установлен. Затем из меню «Пуск» вы можете открыть git bash или, если вы установили расширения оболочки, при установке git, вы можете щелкнуть правой кнопкой мыши в папке или на папке и выбратьGit Bash Here
User

4

Я предлагаю Total Commander (условно-бесплатная, но продолжает работать после пробного периода только с минимальным начальным экраном). Именно так я всегда решаю проблемы с слишком длинными именами файлов .


1
Спасибо Господу, я нашел это. Возникают проблемы с удалением папки node_modules, потому что она решает тупо вложить каталоги.
Псевдоним

Ну, @Alias, Total Commander облегчает обнаружение этой проблемы, по крайней мере, для меня. После выявления такой проблемы, chkdskследует ее решить.
Сопалахо де Арриерес

Версия 7.0 не работает, она показывает сообщение об ошибке и предлагает выполнить операцию с правами администратора, что также не удается.
izogfif

@izogfif: последняя версия на сегодня - 8.52a. Я бы попробовал это. Вы не сообщаете подробности о своем сообщении об ошибке, но у вас может быть некоторая несогласованность в структуре архива, которая должна быть решена (по крайней мере для NTFS) с помощью "chkdsk c: / f" (предполагается, что диск C :)
Сопалахо де Арриерес

2

Вы также можете удалить их, используя их эквивалентное короткое имя. dir /xпокажет вам их.


2

Я создал простую Java-программу, которая использует robocopy для удаления файлов. Баночка пригодна для использования. Для дополнительного вывода запустите его из строки cmd.

https://drive.google.com/file/d/0B5pSEjxJvt_1WVp1T3puSm1CNjg/view?usp=sharing


2
И если вы не хотите использовать Java, вы можете использовать этот инструмент, который я написал, используя .NET ( github.com/epsitec/Tools-RecursiveDelete ).
Пьер Арно

@PierreArnaud отличная утилита. Мне нужно что-то подобное для автоматизации командной строки. @ CamHart хорошая работа от тебя тоже! Спасибо, парни!
17

1

Я попробовал все остальные ответы, но они не сработали (по крайней мере, для меня).

Я наткнулся на delinfile и работал довольно хорошо и довольно быстро!

Пробная версия ограничена 3 действиями / 15 днями, но ее можно использовать, если вы хотите удалить только несколько папок / файлов:


1

Большие каталоги предназначены и для этой задачи. введите описание изображения здесь

  • Скачать
  • Использует рекурсивный вызов с RemoveDirectoryW для удаления существующих каталогов
  • Использует собственный файловый репозиторий для вновь созданных каталогов
  • Файлы могут быть перемещены из каталогов до удаления соответствующих каталогов.
  • Быстрый, хотя переход к верхней части каталога - это клик по вложенному каталогу
  • Windows XP (SP3) и выше
  • Не подписанный неуправляемый код без установщика, поэтому возможно предупреждение Smartscreen при запуске из запасной папки, например с рабочего стола.

Больше информации на CodeProject .


Пожалуйста, прочитайте, Как я рекомендую программное обеспечение для некоторых советов относительно того, как Вы должны рекомендовать программное обеспечение. Вы должны предоставить хотя бы ссылку, некоторую дополнительную информацию о самом программном обеспечении и о том, как его можно использовать для решения поставленной задачи.
DavidPostill

@ Дэвид: лучше? Ссылка была очень полезной, спасибо.
Лори Стерн

1

Я столкнулся с этой проблемой в Windows 10 и нашел это простое решение.

  1. Зайдите немного глубже в дерево папок.
  2. Перетащите папку из середины дерева в начало дерева, используя адресную строку.
  3. Как на моем изображении, перетащите красное поле в зеленое поле. (в этом случае путь короче, но для длинных путей он также работает)
  4. Тогда ваш путь станет короче и удалить как обычно, используя клавишу удаления.

введите описание изображения здесь


1

Получил идеальный ответ здесь (для файлов). Работает в Windows 10.

REM Make sure there is no \ at the end of either path!
robocopy "C:\...\...\...\long\path" "C:\DeleteMe" "FileName" /MOV
REM Note: this ^ can be called many times before...:

REM Finally, recursively delete the higher up DeleteMe directory.
rmdir /S /Q DeleteMe

Смотрите также: https://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath

Ни одного альтернативного ответа на 4 вопроса не хватило для моих нужд. Добро пожаловать в мир.


0

Я наконец-то узнал, как это сделать с помощью Powershell. Вот инструкции, которым я следовал, чтобы заставить это работать на Windows 7:

  1. Создайте новую папку с именем NTFSSecurity в папке C: \ Users \ XXXX \ Documents \ WindowsPowerShell \ Modules \ NTFSSecurity , где XXXX - ваше имя пользователя Windows. Пример: если мое имя пользователя было « aspnyc », новая папка будет C: \ Users \ aspnyc \ Documents \ WindowsPowerShell \ Modules \ NTFSSecurity .

  2. Загрузите пакет модуля PowerShell для защиты файловой системы - он должен быть доступен в виде простого ZIP-файла.

  3. Откройте консоль Powershell, запустите Get-Module -ListAvailable и убедитесь, что NTFSSecurity отображается где-то в списке зарегистрированных модулей.
  4. В консоли Powershell запустите модуль импорта NTFSSecurity .
  5. В консоли Powershell запустите Remove-Item2 "YYYY" -Recurse , где YYYY - это путь Windows к папке, которую вы хотите рекурсивно удалить (например, C: \ Potatoes \ Badgers \ FolderToDelete ).

0

Я наконец-то узнал, как это сделать с помощью Powershell в Windows 10, где отдельные имена файлов были слишком длинными. Вот шаги, которые я следовал, чтобы заставить это работать на Windows 10:

  1. Загрузите пакет модуля PowerShell для защиты файловой системы - он должен быть доступен в виде простого ZIP-файла.
  2. Извлеките Zip-файл как папку NTFSSecurity в каталоге C: \ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ Modules.
  3. Откройте консоль Powershell с правами администратора (он же режим администратора) и запустите Get-Module -ListAvailable и убедитесь, что NTFSSecurity отображается где-то в списке зарегистрированных модулей.
  4. Запустите Set-ExecutionPolicy Unrestricted, чтобы обойти подписанный режим выполнения. Вы должны подтвердить это действие с помощью Y (es)
  5. В конце концов перейдите к папке, которую вы хотите удалить.
  6. В консоли Powershell запустите модуль импорта NTFSSecurity .
  7. В консоли Powershell запустите Remove-Item2 "YYYY" -Recurse , где YYYY - относительный или абсолютный путь Windows к папке, которую вы хотите рекурсивно удалить (например, C: \ Potatoes \ Badgers \ FolderToDelete ).
  8. Проверьте, сработало ли это.
  9. В конце концов вернитесь в режим подписанного исполнения с Set-ExecutionPolicy Restricted . Вы должны подтвердить это действие с помощью Y (es).

0

Если у вас установлен Bash на Ubuntu в Windows, вы можете перейти в родительский каталог в обычной командной строке и набрать:

bash -c "rm -rf dirname_here"

Который запускает bash, рекурсивно удаляет каталог из linux, в котором нет ограничений на имя файла, а затем возвращается в обычную командную строку.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.