Powershell

v2.0 中的 PowerShell notin 運算符可以使用什麼?

  • September 2, 2015

我在 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 }

一個粗略的例子: 在此處輸入圖像描述

引用自:https://dba.stackexchange.com/questions/112961