Я знаю, как удалить одну подпапку или несколько по маске:
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, чтобы убедиться, что он работает.
ЗА / д / р. %% d IN ("Имя вашей папки для удаления") DO @IF EXIST "%% d" rd / s / q "%% d"