Операторы сравнения в PowerShell

В powershell операторы сравнения отличаются от принятой номенклатуры используемой в других языках.
Все популярные операторы сведены к нескольким таблицам

by Gistek


По умолчанию все операторы сравнения не являются чувствительными к регистру.

-eq Equal Равно
-ne Not equal Не Равно
-ge Greater than or equal Больше или Равно
-gt Greater than Больше
-lt Less than Меньше
-le Less than or equal Меньше или Равно
-like Wildcard comparison Использование символов подстановки для поиска соответствия образцу
-notlike Wildcard comparison Использование символов подстановки для поиска несоответствия образцу
-match Regular expression comparison Использование регулярных выражений для поиска соответствия образцу, например Regexp для IP-адреса такой: «\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}» (правда он не распознает невалидные адреса, но это уже проблема логики скрипта, а не Regexp’а)
-notmatch Regular expression comparison Использование регулярных выражений для поиска несоответствия образцу. Подробнее про regexp в powershell можно почитать на Technet
-replace Replace operator Заменяет часть или все значение слева от оператора
-contains Containment operator Определение, содержит ли значение слева от оператора значение справа. В отличие от предыдущих операторов, результатом является булево значение
-notcontains Containment operator Определение того, что значение слева от оператора не содержит значение справа. Результатом является булево значение

Для сравнения с учетом регистра к команде подставляется префикс “c“. Для примера, оператор -eq с зависимостью от регистра изменяется на “-ceq”.

Для явно заданного независящего от регистра сравнения к команде подставляется префикс “i“. Пример: оператор -replace без зависимости от регистра будет -ireplace

Типы

-is Является типом (e.g. $a -is [int] )
-isnot Не является типом (e.g. $a -isnot [int] )
-as Как тип, без ошибки если возникает неудача преобразования (e.g. 1 -as [string] treats 1 as a string )

Логические операторы PowerShell

-and Оба условия должны быть истины, чтобы выражение было истинно (e.g. ($a -ge 5 -AND $a -le 15) )
-or Одно или оба условия должны быть истины, чтобы выражение было истинно (e.g. ($a –eq “A” –OR $a –eq “B”) )
-xor Одно условие должно быть истинно, а второе должно иметь значение “ложь”, чтобы выражение было истинно
-not Указанные условия должны иметь значение “ложь”, чтобы выражение было истинно
-band binary and
-bor binary or
-bnot binary not
! Указанное условие должно иметь значение “ложь”, чтобы выражение было истинно
.. Range operator (e.g.   foreach ($i in 1..10) {$i } )
& call operator (e.g. $a = “Get-ChildItem” &$a executes Get-ChildItem)
. (dot followed by a space) call operator (e.g. $a = “Get-ChildItem” . $a executes Get-ChildItem in the current scope)
-F Format operator (e.g. foreach ($p in Get-Process) { “{0,-15} has {1,6} handles” –F   $p.processname,$p.Handlecount } )

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Post Navigation

Яндекс.Метрика