У меня есть каталог, который состоит из многих подкаталогов. Пример: «\ IP \ Share \ Directory \ Machine \ Year \ Month \ Date \ Image_ID"Удалить каталог на основе Созданная дата независимо от содержимого
Проблема заключается в том, что в этом каталоге хранятся изображения, и мне нужно удалить все изображения, хранящиеся выше 730 дней. Проблема в том, что в папке «Image_ID» есть сотни изображений. Иногда вы можете создать до 100 имен файлов «Image_ID». Мне нужно создать скрипт PowerShell, который будет искать каталог , чтобы создать дату, сортировать и удалить шкаф каталога с «IP-адресом», который был создан старше 730 дней (не для изображений/файлов, поскольку этот процесс может принимать весь день).
Это ежедневная задача, и мне нужно свести к минимуму продолжительность задачи. Поэтому я решил найти дату каталога, а не дату файла.
Это сценарий, который я использую, который работает для меня. Но его принятие очень долго, чтобы закончить, он работает те же удаления строки несколько раз, чтобы просто удалить поддиректорий папки:
Param (
[string]$Source = "\IP\Share\Directory\Machine\Year\Month\Date\Image ID",
[string]$Days = "730"
)
$Folder = Get-ChildItem $Source -Recurse | Where-Object { !$_.PSIsContainer -and $_.LastWriteTime -le (get-date).adddays(-$($Days)) }
$Folder | Remove-Item -Force
$Folder = Get-ChildItem $source -Recurse -Force | Where {$_.PSIsContainer} | Sort-Object FullName -Descending | Where {!(Get-ChildItem $_.FullName -Force)}
$Folder | Remove-Item -Force
$Folder = Get-ChildItem $source -Recurse -Force | Where {$_.PSIsContainer} | Sort-Object FullName -Descending | Where {!(Get-ChildItem $_.FullName -Force)}
$Folder | Remove-Item -Force
$Folder = Get-ChildItem $source -Recurse -Force | Where {$_.PSIsContainer} | Sort-Object FullName -Descending | Where {!(Get-ChildItem $_.FullName -Force)}
$Folder | Remove-Item -Force
$Folder = Get-ChildItem $source -Recurse -Force | Where {$_.PSIsContainer} | Sort-Object FullName -Descending | Where {!(Get-ChildItem $_.FullName -Force)}
$Folder | Remove-Item -Force
stop-process -Id $PID
}
Если я не объяснить что-то правильно, я попытаюсь прояснить. Я новичок в PowerShell, и этот скрипт был комбинацией нескольких, которые я создал.
Я не уверен, что я следую. Кажется, вы повторяете один и тот же кусок кода несколько раз! – gvee