Za pomocą programu Powershell v2.0 Chcę usunąć wszystkie pliki starsze niż X dni:
$backups = Get-ChildItem -Path $Backuppath |
Where-Object {($_.lastwritetime -lt (Get-Date).addDays(-$DaysKeep)) -and (-not $_.PSIsContainer) -and ($_.Name -like "backup*")}
foreach ($file in $backups)
{
Remove-Item $file.FullName;
}
Jednak gdy kopie zapasowe $ są puste, otrzymuję: Remove-Item : Cannot bind argument to parameter 'Path' because it is null.
Próbowałem:
- Ochrona foreach za pomocą
if (!$backups)
- Ochrona elementu usuwanego za pomocą
if (Test-Path $file -PathType Leaf)
- Ochrona elementu usuwanego za pomocą
if ([IO.File]::Exists($file.FullName) -ne $true)
Wydaje się, że żaden z nich nie działa, a jeśli zalecany sposób zapobiegania wprowadzaniu pętli foreach, jeśli lista jest pusta?