Я пишу сценарий, чтобы просмотреть содержимое папки, проверить, не датирован ли каждый вложенный каталог до прошлой субботы, а затем удалить папки, которые старше прошлой субботы, но по какой-то причине отсутствует отладчик powershell мои точки останова в фигурных скобках Get-ChildItem. Нет сообщения об ошибке, но мне нужно что-то добавить в оператор if, чтобы удалить папку. Отладчик переходит в конец функции из открытой фигурной скобки Get-ChildItem {} {
Это мой код:
#do weekly cleanup of DisasterBackup folder
function WeeklyCleanup($folderWeeklyCleanupDatedSubdirs) {
#find out filename with Saturday date before current date
(Get-ChildItem -Path $folderWeeklyCleanupDatedSubdirs -Filter -Directory).Fullname | ForEach {$_}
{ #####debugger jumps from here to end bracket of WeeklyCleanup function when I step over
write-output $_
#check to see if item is before day we want to remove
$lastSaturday = GetLastSaturdayDate
if($_.LastWriteTime -le $lastSaturday)
{
#will remove dir once I've checked it's giving me the right ones
Write-Output $_
Write-Output " 1 "
}
}
} ############debugger skips to here
function GetLastSaturdayDate()
{
$date = "$((Get-Date).ToString('yyyy-MM-dd'))"
for($i=1; $i -le 7; $i++){
if($date.AddDays(-$i).DayOfWeek -eq 'Saturday')
{
$date.AddDays(-$i)
break
}
}
return $date
}
Каталог, который я даю функции, выглядит следующим образом:
E: \ Bak_TestDatedFolderCleanup
Я сохраняю это как строку и передаю функции следующим образом:
$folderToCleanupDatedSubdirs = "E:\Bak_TestDatedFolderCleanup"
WeeklyCleanup $folderToCleanupDatedSubdirs
и содержит длинный список из 10-20 папок, некоторые из которых имеют в названии дату, например:
toLocRobo_2019-01-07
Как только мой скрипт будет готов, он удалит все подкаталоги, датированные датой прошлой субботы, но только на текущий месяц. Я хочу, чтобы это работало независимо от того, в какой день я запускаю скрипт.
Я получаю свои идеи по этой и другим ссылкам:
AddDays
побег отсутствует
Возможно, это проблема формата в Get-ChildItem, но я ее не вижу. Я забочусь только о подкаталогах в папке, переданной в функцию WeeklyCleanup. В этих подкаталогах есть папки, но я не хочу, чтобы они просматривались. Я использовал этот формат ранее для моего параметра dir, поэтому я не думаю, что он ускользает от всего, что не должно.