Операторы сравнения
В отличие от многих языков программирования, в 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 | Указанные условия должны иметь значение "ложь", чтобы выражение было истинно |
! | Указанное условие должно иметь значение "ложь", чтобы выражение было истинно |