我在 v4.0 中开发了一个 PowerShell 脚本,然后了解到 v2.0 不支持 -notin 运算符(这是我需要在其中运行它的版本)。v2.0 的 -notin 运算符的最佳替代方案是什么?如果可能的话,我宁愿尽量减少代码重构。
这是我使用运算符的代码片段:
$NoBackups += $BackupList |
Where-Object { $_.DatabaseName -notin ($NoBackups.DatabaseName) } |
Where-Object { ($_.RecoveryModel.ToString().ToUpper() -ne "SIMPLE") -and ($_.LastLogBackupDate -lt $CompareDate.AddHours($LOGCompareHours)) } |
SELECT InstanceName, DatabaseName, LastBackupDate, LastDifferentialBackupDate, LastLogBackupDate, `
@{Name='Message';Expression={"Transaction Log Backup is more than $([Math]::Abs($LOGCompareHours)) hours old"}}
您可以
-NotContains
在 PowerShell v2.0 及更高版本中使用。您唯一需要做的就是撤销您的支票。使用-NotIn
您将您的当前价值与收藏品进行比较,而-NotContains
您通过将收藏品与您的当前价值进行比较来进行相反的操作。所以只要改变这个:
至
一个粗略的例子: