Powershell
v2.0 中的 PowerShell notin 運算符可以使用什麼?
我在 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
您通過將您的集合與您的目前值進行比較來進行相反的操作。所以只要改變這個:
Where-Object { $_.DatabaseName -notin ($NoBackups.DatabaseName) }
到
Where-Object { $NoBackups.DatabaseName -NotContains $_.DatabaseName }