Operators and expressions – Arithmetic, assignment, comparison, pattern matching logical and bit wise operators

    Operators and expressions – Arithmetic, assignment, comparison, pattern matching logical and bit wise operators

    PowerShell includes the following comparison operators:

    Operator Type Operators Description
    Equality -eq
    -ne
    -gt
    -ge
    -lt
    -le
    equals
    not equals
    greater than
    greater than or equal
    less than
    less than or equal
    Matching -like
    -notlike
    -match
    -notmatch
    Returns true when string matches wildcard pattern
    Returns true when string does not match wildcard pattern
    Returns true when string matches regex pattern – $matches contains matching strings
    Returns true when string does not match regex pattern – $matches contains matching strings
    Containment -contains
    -notcontains
    -in
    -notin
    Returns true when reference value contained in a collection
    Returns true when reference value not contained in a collection
    Returns true when test value contained in a collection
    Returns true when test value not contained in a collection
    Replacement -replace replace a string pattern
    Type comparison -is
    -isnot
    Returns true if both object are the same type
    Returns true if the objects are not the same type

    Examples:

    Equality Operators:

    PS C:\> 2 -eq 2
    True
    PS C:\> 2 -eq 3
    False
    PS C:\> 2 -ne 3
    True
    PS C:\> 2 -ne 2
    False

    PowerShell operators are by default not case sensitive.

    PS C:\> "PowerShell" -eq "PowerShell"
    True
    PS C:\> "PowerShell" -eq "POWERSHELL"
    True

    If you want to make case sensitive, then we have to use -ceq.

    PS C:\> "PowerShell" -ceq "POWERSHELL"
    False
    PS C:\> 10 -gt 10
    False
    PS C:\> 10 -gt 11
    False
    PS C:\> 100 -gt 10
    True
    PS C:\> 10 -gt 100
    False
    PS C:\> 10 -ge 10
    True
    PS C:\> 100 -ge 10
    True
    PS C:\> 10 -lt 100
    True
    PS C:\> 100 -lt 10
    False
    PS C:\> 10 -le 100
    True
    PS C:\> 100 -le 10
    False
    PS C:\>

    Matching Operators:

    PS C:\> "WindowsServer2012" -like "Windows"
    False
    PS C:\> "WindowsServer2012" -like "Windows*"
    True
    PS C:\> "WindowsServer2012" -like "*Server2012"
    True
    PS C:\> "WindowsServer2012" -like "*Server*"
    True
    PS C:\> "WindowsServer2012" -match "Server"
    True
    PS C:\> "WindowsServer2012" -match "2012"
    True
    PS C:\> "WindowsServer2012" -match "Windows"
    True
    PS C:\> "WindowsServer2012" -cmatch "Windows"
    True
    PS C:\> "WindowsServer2012" -cmatch "WINDOWS"
    False
    PS C:\> "WindowsServer2012" -notmatch "WINDOWS"
    False
    PS C:\> "WindowsServer2012" -cnotmatch "WINDOWS"
    True

    Containment Operators:

    PS C:\> "abc", "def" -Contains "def"
    True
    PS C:\> "Windows", "PowerShell" -Contains "Shell"
    False
    PS C:\> "Windows", "PowerShell" -Contains "*Shell"
    False

    Replacement:

    PS C:\> $a = "Windows Server 2012"
     
    PS C:\> $a -replace "2012","2016"
    Windows Server 2016

    Type Comparison:

    PS C:\> 123 -is [int]
    True
     
    PS C:\> "Red" -is [string]
    True
     
    PS C:\> $a = 1,2,3,4,5
    PS C:\> $a -is [array]
    True

     


    © 2019 WinAdmin.org, All Rights Reserved.
    Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.