powershell比較運算符

比較運算符用於比較命令中不一樣參數中的值。從根本上說,每次比較都將建立一
    個條件,該條件的計算結果爲 True 或 False。根據該比較,能夠採起相應的操
    做。例如,能夠將比較運算符與語句塊結合使用,以測試特定的條件。該測試的
    結果將肯定應採起何種操做(亦即,將運行哪些代碼塊)。

    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                  指定的類型 

相關文章
相關標籤/搜索