Для добавления этого условия, вам нужно просто считать количество папок внутри указанной директории перед выполнением удаления. Ниже представлен код PowerShell, который делает именно это:
# Считаем количество папок внутри директории
$folderCount = (Get-ChildItem -Path "C:\Users\User\Desktop\Test" -Directory).Count
# Если количество папок >= 10, то выполняем удаление
if ($folderCount -ge 10) {
Get-ChildItem -Path "C:\Users\User\Desktop\Test" -Recurse |
Where-Object { ((Get-Date) - $_.CreationTime).Days -gt 15 } |
Remove-Item -Force
} else {
Write-Host "Количество папок меньше 10. Удаление отменено."
}
Этот скрипт сначала подсчитывает количество папок в указанной директории. Если их 10 или больше, скрипт продолжает удалять старые файлы и папки, как и в вашем первоначальном скрипте. В противном случае, он выводит сообщение, что удаление отменено.
Выглядит так :
dir C:\Users\User\Desktop\Test -recurse |
where { ((get-date)-$_.creationTime).days -gt 15 } |
remove-item -force
-----------------------------------
Необходимо задать условие, при котором скрипт будет отрабатывать только при условии, что в директории есть минимальное количество папок ( допустим 10 )
То есть будут удаляться файлы старше 15 дней при условии что имеется 10 папок внутри
если папок меньше ( от 9 и меньше ) то удаление прекращается ( симулируем что база перестала выгружаться а файлы дальше удалялись бы )
Спасибо