«rm -rf» эквивалент для Windows? - PullRequest
       112

«rm -rf» эквивалент для Windows?

426 голосов
/ 19 сентября 2008

Мне нужен способ рекурсивного удаления папки и ее дочерних элементов.

Для этого есть встроенный инструмент или мне нужно написать его?

DEL /S не удаляет каталоги.

DELTREE удалено из Windows 2000 +

Ответы [ 18 ]

2 голосов
/ 19 сентября 2008

Вы можете установить GnuWin32 и использовать команды * nix для Windows. Я устанавливаю это прежде, чем я установлю что-либо еще на мятную свежую копию окон. :)

2 голосов
/ 04 сентября 2012

Вот что вам нужно сделать ...

Создайте командный файл со следующей строкой

RMDIR /S %1

Сохраните ваш пакетный файл как Remove.bat и поместите его в C:\windows

Создайте следующий раздел реестра

HKEY_CLASSES_ROOT\Directory\shell\Remove Directory (RMDIR)

Запустите regedit и обновите значение по умолчанию HKEY_CLASSES_ROOT\Directory\shell\Remove Directory (RMDIR)\default со следующим значением

"c:\windows\REMOVE.bat" "%1"

Вот и все! Теперь вы можете щелкнуть правой кнопкой мыши по любому каталогу и использовать функцию RMDIR

1 голос
/ 01 марта 2019

Принятый ответ отличный, но, если у вас установлен Node, вы можете сделать это гораздо точнее с библиотекой узлов "rimraf", которая позволяет создавать шаблоны. Если вы часто этим пользуетесь (я это делаю), просто установите его глобально.

yarn global add rimraf

тогда, например, шаблон, который я постоянно использую:

rimraf .\**\node_modules

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

npx rimraf .\**\node_modules
0 голосов
/ 20 декабря 2018

через Powershell

 Remove-Item -Recurse -Force "TestDirectory"

через командную строку

https://stackoverflow.com/a/35731786/439130

0 голосов
/ 03 сентября 2018

Использование Powershell 5.1

 get-childitem *logs* -path .\ -directory -recurse | remove-item -confirm:$false -recurse -force

Замените logs именем каталога, который вы хотите удалить.

get-childitem выполняет поиск дочернего каталога с именем рекурсивно по текущему пути (.).

remove-item удаляет результат.

0 голосов
/ 19 сентября 2008

Существует также deltree, если вы используете более старую версию Windows.

Мне очень нравится этот сайт для поиска команд: SS64: Del - Удалить файлы

0 голосов
/ 25 марта 2015

вот что у меня сработало:

Просто попробуйте уменьшить длину пути. i.e :: Переименовать все папки, которые приводят к такому файлу, до минимально возможных имен Скажи одну букву именам. Продолжайте переименовывать вверх в иерархии папок. Благодаря этому вы эффективно уменьшите длину пути. Теперь, наконец, попробуйте немедленно удалить файл.

0 голосов
/ 30 декабря 2015

del / s / q каталог todedeleted

...