除了作為命令列工具外,PowerShell 是微軟推出的一種編程語言,可讓您控制和自動化系統。PowerShell 使用與大多數編程語言不同的語法來表示其運算符。
但是,一旦您理解了 PowerShell 運算符語法,您會發現它並不難使用。您在 PowerShell 中最常用的運算符之一是不等於運算符(-ne
)。該運算符允許您測試兩個值是否不相等。
在本文中,您將了解 PowerShell 不等於運算符以及如何通過示例使用它。
先決條件
本教程將進行實踐演示。如果您想跟著做,請確保您有一個安裝了 PowerShell 的系統。本教程使用的是 Windows 10 和 PowerShell 7。
使用 PowerShell 不等於運算符(基礎)
簡而言之,PowerShell 不等於運算符(-ne
)用於確定兩個對象的值是否不相等,並根據結果返回布爾值。如果值不相等,結果為True
;否則,結果為False
。
但是,您如何在何時使用 PowerShell 不等於運算符?後續部分將教您 PowerShell 不等於的基礎知識。
比較變量
其中,PowerShell不等運算符的最常見用途之一是比較兩個變數。例如,假設你有兩個變數,$a
和$b
,並且你想查看它們是否相等。比較語法如下:
如果$a
和$b
的值不相等,則此比較將返回True
。否則,它將返回False。
1. 在PowerShell控制台中運行以下命令,以創建作為示例使用的變數。$a、$b、$c和$d變數表示不同的值。你可以比較每個值,以測試它們是否相等。
為了了解PowerShell不等運算符如何處理相等值,你將$ c和$ d分配相同的值。
2. 現在,執行PowerShell不等比較,查看$a和$b的值是否不相等。
結果返回True,因為$a的值是1,而$b是2,這兩個值不相等。

3. 現在比較$c和$d變數,看它們是否也不相等。
你將看到一個False輸出,如下圖所示,因為$c和$d的值相等(3=3)。

比較值
在使用PowerShell時,你想比較的並非所有對象都在變數中。在這種情況下,你可以直接使用PowerShell不等運算符比較值。
例如,下面的命令直接使用PowerShell不等運算符比較兩個值。
你將看到一個True值返回,如下所示,因為這些值不相等。

另一方面,比較相等的值將返回False
。

從數組中刪除一個值
PowerShell 不等於運算符返回一個布爾結果,指示兩個值是否不相等。除了該功能外,此運算符還可以從數組中過濾項目。
例如,創建一個名為$numbers
的變量,其中包含數字1到5的數組。

然後,運行以下命令返回除一個數字(4
)之外的數組。
現在您可以看到,該命令返回了數組中除數字4之外的每個數字。

比較字符串
除了數字,您還可以對字符串應用 PowerShell 不等於比較。
1.例如,假設您有兩個字符串,“Hello”和“World”。要確定這兩個字符串是否不相等,請運行以下命令。
結果為 True,因為“Hello”不等於“World”。

2.現在比較字符串“Hello”和“hello”以查看它們是否相等。
您將看到結果為 False,因為“Hello”等於“hello”。

因此,根據 PowerShell 的定義,”Hello” 和 “hello” 不再被視為相等。

在實際應用中使用 PowerShell 不等運算子(範例)
現在您已經了解 PowerShell 不等運算子的基本概念,以下部分將讓您體驗它在現實世界中的一些用途。
監控服務狀態
A staple of Windows systems administration is monitoring the server service status. This task involves filtering out which services whose Status Is Not Running
.
例如,運行 Get-Service
cmdlet 以顯示本地機器上的所有服務。
您可以在下面的輸出中看到所有停止和運行的服務。

現在,為了過濾只有那些不是Running
的服務,運行以下命令,並應用-ne
運算子如下。
如下所示,在應用 PowerShell 不等比較後,狀態列僅顯示已停止的服務。

同樣,運行以下命令以返回其狀態不是已停止
的服務。
這一次,您只會看到正在運行的服務。

結合 PowerShell 不等於與 AND
運算子
除了進行 1:1 比較外,您還可以將 PowerShell 不等於條件與另一個比較運算子,例如 -eq
(等於),結合使用 -and
運算子。當您比較的物件必須滿足多個條件時,這種方法很有用。
例如,監視伺服器服務通常涉及確保所有自動服務都必須運行。執行以下命令列出所有狀態為 非運行
且啟動類型為 自動
的服務。在此示例中,物件值必須符合所有條件。
現在您可以看到未運行的自動服務,這可以幫助您決定必須採取的操作。

添加 If/Else 條件邏輯
您還可以在條件語句中使用 PowerShell 不等於運算子,例如 if/else 語句。
例如,大多數情況下,如果其啟動類型值為自動,則服務必須運行。以下腳本獲取所有服務,檢查哪些自動服務未運行,並執行校正操作—顯示消息並啟動服務。
注意:Start-Service $_.Name 行被註釋掉並且不會運行。如果您想執行該命令,請取消註釋此行。
複製下面的程式碼並在 PowerShell 中執行。
結果顯示哪些自動服務未執行。

結論
在本文中,您了解了 PowerShell 不等於運算子。您也學會了如何通過示例使用它。現在,您應該對其運作原理有了很好的理解。
有了這些新發現的知識,您現在可以在 PowerShell 腳本中使用不等於運算子來測試條件。但請記住,還有其他比較運算子可用。您可能需要結合多個運算子來測試更複雜的條件。