我想使用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;
}
但是,当$ backups为空时,我得到: Remove-Item : Cannot bind argument to parameter 'Path' because it is null.
我试过了:
- 通过以下方式保护foreach
if (!$backups)
- 使用以下方法保护删除项
if (Test-Path $file -PathType Leaf)
- 使用以下方法保护删除项
if ([IO.File]::Exists($file.FullName) -ne $true)
这些似乎都不起作用,如果建议的方法是在列表为空的情况下阻止输入foreach循环,该怎么办?