PowerShell 支持如下比較運算符:正則表達式
運算符 說明 示例 t/f
------------ --------------------- ------------------------ -----
-eq 等於 10 -eq 10 true
-ne 不等於 10 -ne 10 false
-gt 大於 10 -gt 10 false
-ge 大於 10 -ge 10 true
或等於
-lt 小於 10 -lt 10 false
-le 小於或等於 10 -le 10 true
-like 通配符比較 "one" -like "o*" true
-notlike 通配符比較 "one" -notlike "o*" false
-match 正則表達式 "book" -match "[iou]" true
比較
-notmatch 正則表達式 "book" -notmatch "[iou]" false
比較測試
以上列出的比較運算符不區分大小寫。換句話說,「abc」與「ABC」是相同的。可是,
能夠經過在運算符名稱前加字母 c 來指定比較區分大小寫,例如 -ceq。在使用
c 後,比較運算將區分要進行比較的字母的大小寫。也可經過在運算符前加字母
i 來指定運算符不區分大小寫,例如 -ieq。這與不指定 c 或 i 同效。但您仍是
有可能但願使用 i 來代表在進行比較運算時不區分大小寫。lua
若要使用比較運算符,則必須指定要進行比較的值,以及分隔這些值的運算符。例
如,如下命令顯示了 if 語句中使用的 -gt 比較運算符:對象
if ($varA -gt $varB)
{
Write-Host "Condition evaluates to true."
}
else
{
Write-Host "Condition evaluates to false."
}it
此示例中使用 -gt 運算符來肯定 $varA 中的值是否大於 $varB 中的值。若是
此條件的計算結果爲 True,則運行第一個代碼塊。若是此條件的計算結果爲
False,則運行第二個代碼塊。io
也能夠在上述示例的語句中使用除 -gt 運算符之外的運算符之一。例如,可使
用 -le 運算符來測試 $varA 是否小於或等於 $varB。一樣,若是此條件的計算
結果爲 True,則運行第一個代碼塊,不然運行第二個代碼塊。變量
除了基本的比較運算符外,PowerShell 還支持幾種特殊的比較運算符,包括範圍
運算符、替換運算符和位運算符。foreach
範圍運算符
另外一個很是有用的比較運算符是由兩個句點 (..) 表示的範圍運算符。範圍運算
符用於標識語句中可使用的值的範圍。若要使用範圍運算符,則必須指定範圍
的開始值、該運算符以及此範圍中最後的值。例如,如下語句將使用範圍運算符
來定義從 1 到 $varB 變量之間的範圍:循環
foreach($varA in 1..$varB)
{
Write-Host $varA
}方法
若是將 $varB 設置爲 10,則該語句的範圍將是從 1 到 10(包括 1 和 10)。這
表示,該語句每循環一次(做爲 foreach 循環的結果),都會將 1 到 10 這一範圍
中的一個值賦予 $varA。該值從 1 開始,每循環一次就遞增 1。使用範圍運算
符,您只需標識出值範圍而無需逐一鍵入每一個值。
替換運算符
替換運算符用於使用指定的值來替換原值中部分或所有的值。例如,若是值爲
「book」,則可以使用替換運算符將 b 替換爲 C。替換運算符將 b 與值 (book) 進
行比較以肯定該值中是否包含 b。若是比較的結果爲 True,則使用 C 替換 b,然
後返回新的值。若是比較的結果爲 False,則返回原值。
PowerShell 支持三種形式的替換運算符:
運算符 大小寫 示例 結果
---------- ----------------- --------------------------- -------
-replace 不區分大小寫 "book" -replace "B", "C" Cook
-ireplace 不區分大小寫 "book" -ireplace "B", "C" Cook
-creplace 區分大小寫 "book" -creplace "B", "C" book
如上述示例所示,-replace 運算符的使用方法與任何其餘比較運算符基本相同,
區別在於此運算符後需指定兩個值。第一個值爲要被替換掉的字符,而第二個值
爲要在原值中插入以替換原始字符的新字符。
位運算符
與替換比較運算符同樣,位運算符不會返回值 True 或 False,而會返回從比較中
獲得的值。該比較自己基於構成要比較值的基本位。位是逐一比較的,並且,根據
所使用的位運算符,這些比較的結果自己也是位的形式,這些位在返回時已轉換爲
數值。
例如,數字 10 的位結構是 00001010(基於 1 個字節),數字 3 的位結構是
00000011。若是使用位運算符來比較 10 和 3,則將比較每一個字節中的各個位。
換句話說,將把數字 10 字節中的第一位與數字 3 字節中的第一位進行比較,然
後再比較每一個字節中的第二位,依此類推。這兩個字節的比較將返回第三個字節,
隨後,返回的字節將轉換爲對應的數字值。比較運算返回的值就是這個數值。
PowerShell 支持如下位運算符:
運算符 說明 示例 結果
------------ --------------------- ---------------------- -------
-band 位與 10 -band 3 2
-bor 位或 10 -bor 3 11
在使用 -band 對值進行比較時,只有在所比較的兩個位均爲 1 的狀況下才能返
回一位 (1)。而在使用 -bor 運算符時,只需一個位爲 1 便可返回一位 (1)。
類型運算符
某些運算符可用於進行類型肯定。這些運算符將根據類型是否相同而返回 True
或 False。「-is」運算符容許在對象類型之間進行比較,若是類型相同則返回布爾
值 True,若是不一樣則返回布爾值 False。「-isnot」運算符用於在對象類型之間
進行比較,若是類型相同則返回布爾值 False,若是不一樣則返回布爾值 True。運
算符的右側必須表示爲一種類型,或可轉換爲 Type。運算符的左側的類型可通
過調用對象 GetType() 方法肯定。任何不帶小數點的數字文本均採用最小的表
示形式,以保持簡潔。
運算符 說明 示例 結果 ------------ --------------------- ---------------------- ------- -is 是指定的 $true -is [bool] true 類型 -is 是指定的 32 -is [int] true 類型 -is 是指定的 32 -is [double] false 類型 -isnot 不是 $true -isnot [bool] false 指定的類型