ใช้ Powershell v2.0 ฉันต้องการลบไฟล์ใด ๆ ที่เก่ากว่า X วัน:
$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;
}
อย่างไรก็ตามเมื่อการสำรองข้อมูล $ ว่างเปล่าฉันได้รับ: Remove-Item : Cannot bind argument to parameter 'Path' because it is null.
ฉันได้พยายาม:
- ปกป้องด้านหน้าด้วย
if (!$backups)
- การป้องกันการลบรายการด้วย
if (Test-Path $file -PathType Leaf)
- การป้องกันการลบรายการด้วย
if ([IO.File]::Exists($file.FullName) -ne $true)
สิ่งเหล่านี้ดูเหมือนจะไม่ทำงานถ้าหากวิธีที่แนะนำในการป้องกันการวนลูป foreach ไม่ทำงานถ้ารายการว่างเปล่า