Операторы сравнения
В отличие от многих языков программирования, в PowerShell отказались от использования символов «>», «<» или «=», заменив их выражениями –gt; -lt; -eq. Сначала идет знак «-», потом псевдокоманда eq – equal, gt – greater than, lt – less then.
Ниже в таблице приведен список базовых операторов сравнения.
| Команда | Значение на английском | Значение на русском |
| -eq | Equal | Равно |
| -ne | Not equal | Не Равно |
| -ge | Greater than or equal | Больше или Равно |
| -gt | Greater than | Больше |
| -lt | Less than | Меньше |
| -le | Less than or equal | Меньше или Равно |
| -like | Wildcard comparison | Поиск соответствия символов по заданному образцу, аналог SQL-ного LIKE |
| -notlike | Wildcard comparison | Поиска несоответствия символов образцу |
| -match | Regular expression comparison | Поиск соответствия образцу с использованием регулярных выражений |
| -notmatch | Regular expression comparison | Поиск несоответствия образцу с использованием регулярных выражений |
| -replace | Replace operator | Заменяет часть или все значение слева от оператора. Очень своеобразный оператор |
| -contains | Containment operator | Определение, содержит ли значение слева от оператора значение справа. Возвращает $true или $false |
| -notcontains | Containment operator | Определение того, что значение слева от оператора не содержит значение справа. Возвращает $true или $false |
$myvar = "This is an old string"
$myvar | ForEach-Object {$_ -replace "old", "new"} | Set-Content $myvar
Write-Host "Результат: " + $myvar
В результате будет выдано:
Результат: + This is an old string
Для сравнения с учетом регистра к команде подставляется префикс "c". Для примера, оператор -eq с зависимостью от регистра изменяется на "-ceq".
Для явно заданного независящего от регистра сравнения к команде подставляется префикс "i". Пример: оператор -replace без зависимости от регистра будет -ireplace
Типы
| -is | Является типом |
| -isnot | Не является типом |
| -as | Как тип, без ошибки если возникает неудача преобразования |
Логические операторы PowerShell
| -and | Оба условия должны быть истины, чтобы выражение было истинно |
| -or | Одно или оба условия должны быть истины, чтобы выражение было истинно |
| -xor | Одно условие должно быть истинно, а второе должно иметь значение "ложь", чтобы выражение было истинно |
| -not | Указанные условия должны иметь значение "ложь", чтобы выражение было истинно |
| ! | Указанное условие должно иметь значение "ложь", чтобы выражение было истинно |
