Я хочу удалить папку 30-дневной давности и все подпапки, имя которых начинается с "dba_20200312-0500311 - 123"
# $curDateTime = Get-Date -Format yyyyMMdd-HHmmss, folder save in this date format
$mydays = (Get-Date).AddDays(30)
$path = "E:\share\New folder\"
Get-Childitem -path $path -recurse -force | Where-Object { !$_.LastWriteTime -lt $mydays} | Remove-Item -Recurse -Force -confirm:$false -Verbose
Я использовал этот сценарий, но он не удалялся с именем папки, которая сохраняется по дате.
Прежде всего, вам не хватает знака «-» в методе AddDays для get-date.
Чтобы сопоставить имя файла и время последней записи, вам нужно будет настроить условия Where-Object, попробуйте, соответствует ли это выражение файлам, которые вам нужно удалить, прежде чем передавать это в Remove-Item:
Get-ChildItem -Path "E:\share\New folder\" -Recurse | Where-Object {$_.PSIsContainer -eq $true -and $_.Name -match "dba_20200312-0500311" -and $_.LastWriteTime -gt ((get-date).AddDays(-30))}