I am checking each folder for an HTMLreports directory and then deleting files that are over 30 days old. But when it gets to the filename for $document.Name
or $image.name
in the foreach
loop it is not getting the filename to delete the file for the Remove-Item
command.
$items = Get-ChildItem -Path "C:\Program Files (x86)\Jenkins\jobs\"
$time = (Get-Date).AddDays(-30)
$today = Get-Date
echo $today
# enumerate the items array
foreach ($item in $items) {
# if the item is a directory, then process it.
if ($item.Attributes -eq "Directory") {
Write-Host "job folder: " $item.Name
$folder = Get-ChildItem -Path ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\")
if (Test-Path ("C:\Program Files (x86)\Jenkins\jobs\"+$item.Name+"\htmlreports\")) {
$reports = Get-ChildItem -Path ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\htmlreports\")
foreach ($report in $reports) {
Write-Host "report folder" $report.Name
$documents = Get-ChildItem -Path ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\htmlreports\" + $report.Name + "\") |
Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $time }
foreach ($document in $documents) {
if ($document.Attributes -eq "Directory") {
echo "Folder exists"
Write-Host "delete document folder" $document.Name
Remove-Item ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\htmlreports\"+$report.Name+"\" + $document.Name)
} else {
echo "File exists"
Write-Host "delete document " $document.Name
Remove-Item ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\htmlreports\"+$report.Name+"\" + $document.Name)
}
}
if (Test-Path ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\htmlreports\" + $report.Name + "\images\")) {
echo "Image Folder exists"
$images = Get-ChildItem -Path ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\htmlreports\" + $report.Name + "\images\") -Name |
Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $time }
foreach ($image in $images) {
Write-Host "delete image: C:\Program Files (x86)\Jenkins\jobs\"$item.Name"\htmlreports\"$report.Name"\images\"$image.Name
Remove-Item ("C:\Program Files (x86)\Jenkins\jobs\" + $item.Name + "\htmlreports\" + $report.Name + "\images \" + $image.Name);
}
}
}
}
}
}