PowerShell comparison operators are used to compare values. There are four different categories of comparison operators in PowerShell. They are as follows:
The equality operators are used to check whether two values are equal or not, lesser or greater than one another.
| Operator | Description |
|---|---|
-eq |
It checks whether two values are equal |
-ne |
It checks whether two values are not equal |
-gt |
It checks whether the left hand side is greater than the right hand side |
-lt |
It checks whether the left hand side is lesser than the right hand side |
-ge |
It checks whether the left hand side is greater than or equal to the right hand side |
-le |
It checks whether the left hand side is lesser than or equal to the right hand side |
<left hand side> <operator> <right hand side>
Comparison can be case-sensitive or case-insensitive in nature. Hence, to perform a case-sensitive comparison, prefix the above operators with c, such as -ceq, -cne, -clt, -cgt etc.
Similarly, to perform a case-insensitive comparison prefix the above operators with i i.e -ieq, -ine, -ilt, -igt etc.
The following code is executed in the terminal below:
$a=10
$b=5
($a -eq $b)
($a -gt $b)
($b -le $a)
Here, we define two variables, a and b, and apply different equality operators.
The matching operators are used to check whether the value matches the specified pattern or not.
| Operator | Description |
|---|---|
-like |
It checks whether the string matches the wildcard pattern |
-notlike |
It checks whether the string does not match the wildcard pattern |
-match |
It checks whether the string matches the regular expression |
-notmatch |
It checks whether the string does not match the regular expression |
<string[]> [-like | -notlike] <wildcard-expression>
<string[]> [-match | -notmatch] <regular-expression>
Matching can be case-sensitive or case-insensitive in nature. Hence, to perform a case-sensitive matching prefix, use the above operators with c such as -clike, -cnotlike, -cmatch, -cnotmatch.
Similarly, to perform a case-insensitive matching prefix, use the above operators with i, such as -ilike, -inotlike, -imatch, -inotmatch.
The following code is executed in the following terminal:
pwsh
$a="Educative"
$b="edu*"
$a -ilike $b
$b="Edu*"
$a -like $b
$a -notlike $b
$a="Monday", "Tuesday", "Wednesday"
$b="Wed"
$a -match $b
Here, we define two variables, a and b, and apply different matching operators.
The replacement operators are used to replace the string matching the given regex with a replacement value.
| Operator | Description |
|---|---|
-replace |
It checks whether the string matches the wildcard pattern |
<input> -replace <regular-expression>, <substitute>
Replacement can be case-sensitive or case-insensitive in nature. Hence, to perform a case-sensitive replacement, prefix the above operators with c such as -creplace.
Similarly, to perform a case-insensitive replacement prefix the above operators with i, such as -ireplace.
The following code is executed in the below terminal.
$a="Educative and edpresso"
$a -replace "edpresso" , "Answers"
Here, we define two variables, a and b, and apply different replacement operators.
The containment operators are used to check whether a collection contains a value or not.
| Operator | Description |
|---|---|
-contains |
It checks whether the collection contains the value |
-notcontains |
It checks whether the collection does contain the value |
-in |
It checks whether a value is contained in the collection |
-notin |
It checks whether a value is not contained in the collection |
<Collection> [-contains | -notcontains] <Test-object>
<Test-object> [-in | -notin] <Collection>
Containment can be case-sensitive or case-insensitive in nature. Hence, to perform a case-sensitive containment check prefix the above operators with c, such as -ccontains, -cnotcontains,-cin, cnotin.
Similarly, to perform a case-insensitive contains prefix the above operators with i, such as -icontains, -inotcontains,-iin, inotin.
The following code is executed in the below terminal.
$a="Monday", "Tuesday", "Wednesday"
$b="Wednesday"
$a -contains $b
$a -notcontains $b
$b -in $a
$b -notin $a
Here, we define two variables, a and b, and apply different containment operators.
The type checking operators are used to check whether both the given objects are of the same type or not.
| Operator | Description |
|---|---|
-is |
It checks whether both the objects are of the same type |
-isnot |
It checks whether both the objects are not of the same type |
<object> -is <type-reference>
<object> -isnot <type-reference>
The following code is executed in the following terminal:
$a="hello"
$a -is [Int]
$a -isnot [Int]
$a -is [string]
Here, we define a variables a and apply different type check operators.
Free Resources