Назад | Перейти на главную страницу

Удалить подпапку с определенным именем из всех подпапок?

Я знаю, как удалить одну подпапку или несколько по маске:

rmdir / s / q C: \ Somedir \ DirToDelete

или

rmdir / s / q C: \ Somedir \ DirsToDelete *

Но я хочу удалить все подпапки, скажем, с именем DeleteMe, из всех подпапок в C: \ Somedir.

Идеи?

Другой способ (только PowerShell)

 Remove-Item -path e:\path\*\path\*\* -Filter *DeleteMe* -WhatIf

Удалить все Удали меня dirs рекурсивно в последнем пути "звездочка".

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

ОБНОВЛЕНИЕ 1 После некоторой работы ... это обновление лучше ... строка раньше может удалять только пустые папки. Это может удалить папку с содержимым:

get-childitem -path E:\path\*\path\*\* -recurse -filter *DeleteMe* | remove-item -whatif -force -recurse

Сначала вы хотите перечислить все каталоги, которые хотите удалить. Затем используйте это, чтобы удалить их все. Вот быстрый и грязный пример использования того, что вы туда поместили.

for /f "usebackq" %%a in (`"dir C:\Somedir /ad/b/s DirsToDelete"`) do rmdir "%%a"

Пожалуйста, проверьте это, прежде чем запускать его для своей среды. Обычно я заменял rmdir на echo, чтобы убедиться, что он работает.

  1. Создайте файл bat, обновите и вставьте ниже код

ЗА / д / р. %% d IN ("Имя вашей папки для удаления") DO @IF EXIST "%% d" rd / s / q "%% d"

  1. Скопируйте этот bat-файл в родительскую папку (тоже может быть C: или D:)
  2. Запустить его