Этот код сделает именно это. Переменная $ path содержит местоположение, где родительские папки
$path = 'C:\'
$parentfolders = Get-Childitem $path -Directory
foreach ($parentfolder in $parentfolders){
foreach ($childfolder in (Get-Childitem $($parentfolder.FullName) -Directory )){
if ($childfolder.Name -eq "Sub2"){
if((Get-Childitem $($childfolder.FullName) | Measure-Object).Count -ne 0){
Remove-Item -Path $($parentfolder.FullName) -Force -Recurse
}
}
}
}
Редактировать: Я объединил свой ответ с ответом от Дейва Секстона
$path = 'C:\'
$parentfolders = Get-Childitem $path
foreach ($parentfolder in $parentfolders){
Get-ChildItem -Filter Sub* -Recurse | ? {(Get-ChildItem -Path $_.FullName).Count -eq 0} | % {Remove-Item $_.Parent -Recurse}
}