Больше или равно powershell: Операторы Windows PowerShell | Windows IT Pro/RE

Содержание

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

SSH: Авторизация по ключу

PowerShell: Как создать новый файл

Просмотров: 617Комментарии: 0
How-ToPowerShell
PowerShellоператоры сравнения

Продолжаю писать себе и Вам небольшую шпаргалку по языку PowerShell. Сегодня речь пойдет о операторах сравнения.

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

ОператорNameRUS Nane
-eqEqualРавно
-neNot equalНе равно
-geGreater than or equalБольше или Равно
-gtGreater thanБольше
-ltLess thanМеньше
-leLess than or equalМеньше или равно
-likeLess than or equalИспользование символов подстановки для поиска соответствия образцу
-notlikeWildcard comparisonИспользование символов подстановки для поиска несоответствия образцу
-matchRegular expression comparisonИспользование регулярных выражений для поиска соответствия образцу
-notmatchRegular expression comparisonИспользование регулярных выражений для поиска несоответствия образцу
-replaceReplace operatorЗаменяет часть или все значение слева от оператора
-containsContainment operatorОпределение, содержит ли значение слева от оператора значение справа. В отличие от предыдущих операторов, результатом является булево значение
-notcontainsContainment operatorОпределение того, что значение слева от оператора не содержит значение справа. Результатом является булево значение

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

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

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

ОператорRUS Name
-isЯвляется типом
-isnotНе является типом
asКак тип, без ошибки если возникает неудача преобразования

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

ОператорRUS Name
-andОба условия должны быть истины, чтобы выражение было истинно
-orОдно или оба условия должны быть истины, чтобы выражение было истинно
-xorОдно условие должно быть истинно, а второе должно иметь значение «ложь», чтобы выражение было истинно
-notУказанные условия должны иметь значение «ложь», чтобы выражение было истинно
!Указанные условия должны иметь значение «ложь», чтобы выражение было истинно

Powershell — операторы — CoderLessons.

com

PowerShell предоставляет богатый набор операторов для работы с переменными. Мы можем разделить все операторы PowerShell на следующие группы:

  • Арифметические Операторы
  • Операторы присваивания
  • Операторы сравнения
  • Логические Операторы
  • Перенаправленные операторы
  • Разлитые и присоединяющиеся операторы
  • Операторы типа
  • Унарные операторы

Арифметические операторы

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

Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда –

Показать примеры

оператор Описание пример
+ (Дополнение) Добавляет значения по обе стороны от оператора. А + Б даст 30
– (вычитание) Вычитает правый операнд из левого операнда. A – B даст -10
* (Умножение) Умножает значения по обе стороны от оператора. А * Б даст 200
/ (Отдел) Делит левый операнд на правый операнд. Б / у даст 2
% (Модуль) Делит левый операнд на правый операнд и возвращает остаток. B% A даст 0

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

Ниже приведены операторы присваивания, поддерживаемые языком PowerShell.

Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда –

Показать примеры

оператор Описание пример
экв (равно) Сравнивает два значения, чтобы быть равными или нет. A -eq B даст ложь
ne (не равно) Сравнивает два значения, чтобы быть не равным. A -ne B даст истинное
GT (больше чем) Сравнивает первое значение с большим, чем второе. B -GT даст верный
ge (больше или равно) Сравнивает первое значение, которое больше или равно второму. B -ge A даст истинное
л (меньше чем) Сравнивает первое значение с меньшим, чем второе. Б-л д даст ложь
ле (меньше или равно) Сравнивает первое значение с меньшим или равным второму. B -le A даст ложное

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

Ниже приведены операторы присваивания, поддерживаемые языком PowerShell.

Показать примеры

оператор Описание пример
знак равно Простой оператор присваивания. Назначает значения от правых операндов к левому операнду. C = A + B назначит значение A + B в C
+ = Добавить И оператор присваивания. Он добавляет правый операнд к левому операнду и присваивает результат левому операнду. C + = A эквивалентно C = C + A
знак равно Вычитание И оператор присваивания. Вычитает правый операнд из левого операнда и присваивает результат левому операнду. C – = A эквивалентно C = C – A

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

В следующей таблице перечислены логические операторы –

Предположим, что булевы переменные A верны, а переменная B ложна, тогда –

Показать примеры

оператор Описание пример
И (логическое и) Называется логический оператор И. Если оба операнда отличны от нуля, условие становится истинным. (A -AND B) является ложным
ИЛИ (логический или) Вызывается логическим оператором ИЛИ. Если любой из двух операндов отличен от нуля, условие становится истинным. (A -OR B) верно
НЕ (логично, нет) Вызывается логическим оператором НЕ. Используйте для изменения логического состояния своего операнда. Если условие истинно, то оператор Логический НЕ будет делать ложь. -НЕТ (А-И Б) верно

Разные операторы

Ниже приведены различные важные операторы, поддерживаемые языком PowerShell.

Показать примеры

Основы PowerShell: операторы сравнения -eq -ne -lt -gt

Для новичков в PowerShell одним из самых странных операторов сравнения является -eq. Хотя вам по-прежнему нужен знак равенства «=» для объявления переменных, в большинстве других случаев вам понадобится PowerShell -eq.

Поначалу использование -ne для «не равно» также кажется странным, но как только вы разберетесь с этой темой тире, за которой следуют начальные буквы, тогда -gt (больше) или -lt (меньше) покажется вам логичным продолжением. Следовательно, откажитесь от > <, вместо этого используйте -gt или -lt.

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

  • PowerShell’s -eq в предложении Where
  • Пример операторов PowerShell -eq и -ne
  • Оператор сравнения PowerShell больше, чем -gt
  • -Соответствует, -Нравится и -Содержит
  • PowerShell, если и еще если
  • PowerShell 3 -In и -NotIn

Классический пример PowerShell -eq в предложении Where

# Сценарий PowerShell для отображения списка DLL в папке system32
$Dir = Get-Childitem C:\windows\system32 -recurse -EA SilentlyContinue
$Список = $Каталог | Где-Объект {$_. extension -eq ".dll"}
$Список | Имя таблицы формата, CreationTime -auto 

Очки обучения

Примечание 1:  Единственный сложный аспект синтаксиса -eq заключается в том, заключать ли объект сравнения в одинарные или двойные кавычки. Разница в том, что «Двойные кавычки» расширяют любые переменные; тогда как «одинарные кавычки» рассматриваются как литералы. В этом примере либо «.dll», либо «.dll» будут соответствовать желаемому листингу. Подробнее о цитатах смотрите здесь.

Пример операторов PowerShell -eq и -ne

Целью следующего сценария из реальной жизни является проверка подключения к Интернету. Если его нет, PowerShell может решить эту конкретную проблему с браузером, перезапустив службу dnscache.

# Сценарий PowerShell для проверки подключения к Интернету
$ DNS = (тестовое соединение www.google.com - тихое)
If($DNS  -eq  "True") {Write-Host "Интернет доступен"}
ElseIf($DNS  -ne  "True") {Restart-Service dnscache}
 

Очки обучения

Примечание 2: Мы используем оператор If для обработки выходных данных командлета Test-Connection.
Примечание 3: Помните, что вместо знака равенства (=) PowerShell использует -eq. Одним из преимуществ является простота использования отрицательного -ne (у PowerShell нет равных).

-Eq Оператор с расширением файла .txt

# Оператор сравнения PowerShell -eq в цикле по каждому элементу
«Имя файла» + «t Размер» + «t Последний доступ»
foreach ($file в Get-Childitem)
{Если ($file.extension  -eq  ".txt")
{
$file.name + "`t " +$file.length + "`t " +    $file.LastAccessTime
}
}
 

Примечание 4: Для полноты картины также используется -Ceq, где «c» означает регистрозависимый.

Парень рекомендует: Монитор производительности сети

(БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ)

Монитор производительности сети SolarWinds ( NPM) поможет вам узнать, что происходит в вашей сети. Эта утилита также поможет вам устранить неполадки; на приборной панели будет указано, является ли основная причина неработающей связью, неисправным оборудованием или перегрузкой ресурсов.

Что мне больше всего нравится, так это то, как NPM предлагает решения сетевых проблем. Он также имеет возможность отслеживать работоспособность отдельных виртуальных машин VMware. Если вы заинтересованы в устранении неполадок и создании сетевых карт, я рекомендую вам попробовать NPM в рамках 30-дневной бесплатной пробной версии.

Монитор производительности сети SolarWinds
Скачать 30-дневную БЕСПЛАТНУЮ пробную версию

Пример оператора сравнения PowerShell «больше чем» -gt

В PowerShell «больше» обозначается аббревиатурой -gt. Обратите внимание, как перед -gt и -lt (меньше чем) стоит тире.

Clear-Host
$FileSource = "D:\"
$Block = Get-ChildItem -path $Filesource -Recurse
$Блокировать | Где-объект {$_.length  -gt  2MB}
 

Очки обучения

Примечание 5:  Суть приведенного выше сравнительного примера заключается в поиске больших файлов; чтобы быть точным, чтобы перечислить файлы размером более 2 МБ.

Примечание 6:  Поскольку 2 МБ — это чистое число, кавычки не нужны.

Примечание 7:   Имейте в виду, что если вы хотите, чтобы этот пример работал, вам нужен либо диск D:, либо измените значение $FileSource.

Оператор сравнения «меньше» в PowerShell -lt

Подобно тому, как -eq имеет противоположность в -ne, так и -gt (больше) имеет зеркальное отражение в -lt (меньше). В других языках сценариев они будут представлены символами > и <, однако PowerShell использует дефис, а затем аббревиатуру оператора сравнения, таким образом -lt.

Говоря о > и <, они имеют >= и <= для представления больше или равно и меньше или равно. В PowerShell такие понятия, включающие равенство, представлены с помощью -ge и -le, где «e» означает «равно».

Вот пример не -lt, а -le, означающего меньше или равно. Что он делает, так это вычисляет и отображает таблицу умножения на 12.

Для ($i = 12; $i  -le  144; $i+=12) {$i}
 

Парень рекомендует: Бесплатный монитор WMI для PowerShell

(БЕСПЛАТНЫЙ ИНСТРУМЕНТ)

Инструментарий управления Windows (WMI) — одно из скрытых сокровищ операционных систем Microsoft. К счастью, компания SolarWinds создала бесплатный монитор WMI для PowerShell , чтобы вы могли обнаружить эти жемчужины информации о производительности и, таким образом, улучшить свои сценарии PowerShell.

Избавьтесь от догадок, какие счетчики WMI следует использовать при написании сценариев для операционной системы, Active Directory или Exchange Server. Попробуйте этот монитор WMI — это бесплатно.

WMI-монитор SolarWinds
Скачать 100% бесплатный инструмент

Похожие операторы PowerShell

  • Объект сравнения
  • Реестр объектов сравнения
  • Условные операторы:  -Like  -Match – содержит
  • Оператор If (также ElseIf)
  • -Соответствие и -Несоответствие
  • Кавычки «Одинарный» или «Двойной»?
  • Синтаксис

Исследования с: About_Comparison_Operators

# Для получения дополнительной информации об операторах PowerShell попробуйте:
Get-Help about_Comparison_Operators
 

Вот полный список операторов сравнения PowerShell

-EQ
-NE
-GT
-GE
-LT
-LE
-Like
-NOTLICE
-MATCH
-NOTMACHTIO In
-NotIn
-Replace

Обычно все эти операторы сравнения не чувствительны к регистру. Однако, чтобы выбрать точный ВЕРХНИЙ или правильный регистр, перед именем оператора следует поставить «c».
Например, «-cmatch»

См. обзор математики PowerShell »

»

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

PowerShell использует знак равенства ‘=’ для объявления переменных, но для настоящих операций сравнения вам понадобится -eq . Кроме того, для не равных используйте оператор -ne. При сравнении больше или меньше логично использовать -gt и -lt, избегая > или < в этих случаях.

Если вам понравилась эта страница, поделитесь ею с друзьями


Дополнительные примеры управления потоком Windows PowerShell

• Заявление о переключении PowerShell. • Реальные методы PowerShell. • Анализатор бесплатных разрешений.

• Различия между For, ForEach и ForEach-Object. Цикл Do While  • PowerShell If Statement  • PowerShell Brackets

Пожалуйста, напишите мне, если у вас есть лучший пример сценария. Также, пожалуйста, сообщайте о любых фактических ошибках, грамматических ошибках или неработающих ссылках, я буду рад исправить ошибку.

Начните игру с PowerShell Like Operator (и не только)

Как и многие другие языки программирования, PowerShell имеет различные операторы сравнения. Однако, в отличие от других языков, эти операторы сравнения могут выглядеть немного странно. Вместо == у вас есть eq . Вместо <> у вас есть ne . Это может сбить с толку новичков. Давайте рассмотрим в этой статье оператор лайка PowerShell и другие операторы сравнения.

Содержание

Проверка на равенство с помощью операторов

eq и ceq

Проверка равенства одного объекта другому объекту в PowerShell выполняется с помощью оператора eq . Оператор eq сравнивает простые объекты многих типов, такие как строки, логические значения, целые числа и т. д. При использовании оператор eq возвращает логическое значение True или False в зависимости от результата.

Оператору -eq требуется два значения для сравнения. Допустим, вы присваиваете строку переменной с именем $string . Вы хотите сравнить значение этой переменной со строковым значением "PowerShell" , чтобы убедиться, что они равны.

В следующем примере видно, что мы присваиваем значение PowerShell переменной   $string . Затем, используя оператор eq , пример сравнивает значение $string со строкой powershell . Достаточно легко, верно? Но подождите, они не на самом деле одинаковые.

 PS> $string = "PowerShell"
PS> $string -eq "powershell"
True 

Обратите внимание, что = является оператором присваивания, а НЕ оператором сравнения. Вы не можете использовать = для сравнения одного значения с другим в PowerShell.

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

ceq

В приведенном выше примере обратите внимание на то, как eq вернул логическое значение True выше, даже если строка не была точно такой же, как . Такое поведение происходит из-за того, что оператор eq нечувствителен к регистру. Чтобы проверить равенство с учетом регистра, используйте оператор ceq . Оператор ceq точно такой же, как eq , за исключением того, что он чувствителен к регистру.

Вы можете увидеть пример использования ceq в следующем фрагменте кода. Теперь обратите внимание, что PowerShell видит разницу с учетом регистра.

 PS> $string -ceq "PowerShell"
Истинный
PS> $string -ceq "powershell"
False 

Testing for Inequality With the

ne and cne Operators

Just as eq and ceq test for equality , PowerShell has a pair of operators that do the exact opposite called ne and cne . Как и их аналоги, эти два оператора выполняют одну и ту же операцию, но противоположную.

 PS> $string = "PowerShell"
PS> $string -ne "PowerShell"
ЛОЖЬ
PS> $string -cne "PowerShell"
ЛОЖЬ
PS> $string -cne "powershell"
Правда 

Тестирование элементов в коллекции

Как правило, операторы eq и ceq используются для скалярных или одиночных значений, таких как строки, целые числа и логические значения. Но эти операторы также могут находить экземпляры определенных значений, содержащихся в коллекции, такой как массив.

Обратите внимание, что в приведенном ниже примере мы создаем массив из 12 целых чисел. Возможно, вы захотите найти в этом массиве все экземпляры, равные числу 9. Нет проблем, используйте eq оператор массива для возврата всех экземпляров сравниваемого целого числа.

 PS> $массив [электронная почта защищена](1,2,3,4,5,6,7,8,9,9,9,9)
PS> $массив -eq 9
9
9
9
9
PS> ($array -eq 9).Count
4 

Проверка коллекций на содержание значений

Поскольку вы только что узнали об использовании оператора eq для поиска экземпляров в массивах, давайте сделаем еще один шаг и познакомимся с операторами «сдерживания». Эти операторы содержат , не содержат , в и не в . Эти операторы возвращают логическое значение True или False , если коллекция содержит экземпляр или нет.

Посмотрите следующий пример. В этом примере мы создаем массив из девяти целых чисел. Если вам нужен простой ответ Да/Нет, если этот массив содержит определенное целое число, вы можете получить, используя , содержит или , не содержит .

 PS> $массив = @(2,4,5,6,8,8,9,9,9)
PS> $array — содержит 9Истинный
PS> $array - не содержит 9
ЛОЖЬ
PS> $массив -содержит 5 

Точно так же у вас есть в и не в операторах. Эти операторы почти идентичны операторам , содержащим и , не содержащим , за одним исключением: сравниваемое значение находится слева, а не справа.

 $массив = @(2,4,5,6,8,8,9,9,9)
9 - в массиве $
Истинный
9 - не в массиве $
Ложь 

Проверка «больше чем» с операторами

gt и ge

Что произойдет, если вам нужно проверить, является ли число (целое число) на больше, чем на другого числа или, возможно, на больше или равно другому числу? Вы бы использовали операторы gt и ge . Эти операторы сравнивают целые числа.

Как и другие операторы, эти операторы возвращают логические значения True или False в зависимости от того, является ли одно целое число больше другого. Оба этих оператора проверяют, является ли левое целое число большим, большим или равным правому целому.

В приведенном ниже примере вы можете увидеть, как ведет себя каждый из этих операторов.

 PS> 7 -gt 5
Истинный
PS> 7 -gt 7
ЛОЖЬ
PS> 7 -гэ 7
True 

Подобно оператору eq , который позволяет находить экземпляры в коллекциях, вы можете делать то же самое с операторами ge и gt . PowerShell просматривает каждый элемент в коллекции и сравнивает каждое значение с тем, которое вы предоставили. Вы можете увидеть отличный пример этого ниже.

 PS> $массив [электронная почта защищена](1,2,3,4,5,6,7,8,9,9,9,9)
PS> $массив -gt 5
6
7
8
9
9
9
9
PS> $массив -ge 5
5
6
7
8
9
9
9
9 

Проверка «меньше чем» С операторами

lt и le

Подобно операторам gt и ge , операторы lt и le 9019 выполняют те же функции, что и четыре оператора. Операторы lt и le сравнивают два значения, проверяя, является ли целое число в левой части меньше или меньше или равно целому числу в правой части.

В приведенном ниже примере вы можете видеть, что та же функциональность сравнения каждого значения в коллекции применяется точно так же, как gt и ge .

 PS> $массив [электронная почта защищена](1,2,3,4,5,6,7,8,9,10)
PS> $массив -lt 5
1
2
3
4
PS> $массив -le 5
1
2
3
4
5 

Сопоставление на основе подстановочных знаков с помощью оператора PowerShell Like

Итак, вы научились выполнять сопоставления 1:1. Все операторы, использовавшиеся до сих пор, сравнивали одно целое значение с другим, но у PowerShell есть еще одна хитрость в рукаве. Вы также можете сравнивать значения на основе подстановочных знаков или звездочек.

Допустим, вы знаете только несколько символов строки. Вы не можете использовать eq , потому что eq требует, чтобы вы знали всю строку. Используя оператор like в PowerShell, вам не нужно знать всю строку. Чтобы проверить, является ли значение похожим на , вы можете заменить неизвестную часть подстановочным знаком.

Как и в случае с другими операторами, эта же функциональность может применяться и к коллекциям.

Вы можете увидеть пример PowerShell, как и брат с учетом регистра, нажмите ниже.

 PS> $string = "PowerShell"
PS> $string - как "*Shell"
Истинный
PS> $array = @("PowerShell","Microsoft")
PS> $array - как "*Shell"
PowerShell
PS> $array -clike "*Shell"
PowerShell 

Оператор -notlike возвращает логическое значение True , если совпадение не найдено, и False , если совпадение есть. В случае использования для коллекции он вернет все остальные значения, которые не соответствуют шаблону, указанному в правой части - не такой как оператор. Чтобы добавить в шаблон чувствительность к регистру, используйте оператор -cnotlike .

 $строка = "PowerShell"
$string - не похоже на "*Shell"
ЛОЖЬ
$массив = @("PowerShell","Майкрософт")
$array - не похоже на "*Shell"
Майкрософт
$array -cnotlike "*оболочка"
PowerShell
Microsoft 

Сопоставление на основе регулярного выражения

Подобный оператор PowerShell и его родственник удобны, но как только вам потребуется более сложное сопоставление. В этот момент вы можете погрузиться в глубокий темный мир регулярных выражений (regex). Использование match и notmatch операторы, вы можете выполнять чрезвычайно сложное сопоставление строк с помощью регулярных выражений.

Подобно оператору типа PowerShell, соответствует , а его противоположный аналог, не соответствует , сравнивает две строки и возвращает логическое значение True или False . Кроме того, как и другие операторы, такое же поведение можно применить к коллекции, как показано в примере ниже.