Operators
Логические
-and
Логический оператор ИWake up, Neo, select all
(1 -eq 1) -and (1 -eq 2)
# False-or
Логический оператор ИЛИWake up, Neo, select all
(1 -eq 1) -or (1 -eq 2)
# True-xor
Логическое исключающее ИЛИWake up, Neo, select all
(1 -eq 1) -xor (2 -eq 2)
# False-not
!
Логическое НЕWake up, Neo, select all
-not (1 -eq 1)
# False
!(1 -eq 1)
# False
Равенство
-eq
(equals) равноWake up, Neo, select all
$date = Get-Date
if($date.Year -eq 2021){
write-host "Машина времени не сработала..."
}
# "Машина времени не сработала..."-ne
(not equals)не равноWake up, Neo, select all
$str = "hello"
$str.Length -ne 5
# False-gt
(greater than) больше чемWake up, Neo, select all
$str = "hello"
$str.Length -gt 5
# False-ge
(greater or equals) больше или равноWake up, Neo, select all
$str = "hello"
$str.Length -ge 5
# True-lt
(less than) меньше чемWake up, Neo, select all
$str = "hello"
$str.Length -lt 5
# False-le
(less or equals) меньше или равноWake up, Neo, select all
$arr = @(15, 18, 17)
$arr.Count -le 2
# False
Если входные данные являются коллекцией, вышеуказанные операторы возвращают соответствующие члены этой коллекции
Wake up, Neo, select all
$arr = 1, 2, 3, 4
$arr -lt 3
# 1 2
$arr -ge 3
# 3 4
Соответствие
-like
строка соответствует представленному шаблону-notlike
строка не соответствует представленному шаблону
-like и -notlike ведут себя аналогично -eq и -ne , но правая часть может быть строкой, содержащей подстановочные знаки.
Подстановочный знак Описание * Совпадение с нулем или несколькими символами ? Совпадение с одним символом в этой позиции [] Совпадение с диапазоном символов [] Совпадение с конкретными символами Wake up, Neo, select all
"PowerShell" -like "*shell" # Output: True
"PowerShell" -notlike "*shell" # Output: False
"PowerShell" -like "Power?hell" # Output: True
"PowerShell" -notlike "Power?hell" # Output: False
"PowerShell" -like "Power[p-w]hell" # Output: True
"PowerShell" -notlike "Power[p-w]hell" # Output: False
"PowerShell" -like "Power[sg]hell" # Output: True
"PowerShell", "Server" -like "*shell" # Output: PowerShell
"PowerShell", "Server" -notlike "*shell" # Output: Server-match
строка соответствует шаблону регулярного выражения-notmatch
строка не соответствует шаблону регулярного выражения
-match и -notmatch используют регулярные выражения для поискаWake up, Neo, select all
# Тест на частичное совпадение, показывающий, как по-разному ведут себя -match и -like
"PowerShell" -match 'shell' # Output: True
"PowerShell" -like 'shell' # Output: False
# Использование регулярного выражения
"PowerShell" -match '^Power\w+' # Output: True
'bag' -notmatch 'b[iou]g' # Output: True
❗️ Специальные символы
Специальные символы регулярных выражений, которые нужно экранировать знаком\
, для непосредственного поиска данных символов:. $ ^ { [ ( | ) * + ? \
Если входные данные являются коллекцией, вышеуказанные операторы возвращают соответствующие члены этой коллекции
Wake up, Neo, select all
$arr = "a", 5, "qwe", 800
$arr -match "\d"
# 5 800
Замена
-Replace
заменяет строки, соответствующие шаблону регулярного выраженияWake up, Neo, select all
$str = "he 11 o"
$str -replace "\s*1\s*", "l"
# helloWake up, Neo, select all
$arr = "a1", "b5", "a800", "bqwe"
$arr -replace "[^ab]"
# a b a b
Вхождение
-contains
Коллекция содержит значение-notcontains
Коллекция не содержит значениеWake up, Neo, select all
$arr = "a", 5, "qwe", 800
$arr -contains "qwe"
# True-in
значение находится в коллекции-notin
значение не находится в коллекцииWake up, Neo, select all
$arr = "a", 5, "qwe", 800
"qwe" -in $arr
# True
Тип
-is
оба объекта имеют одинаковый тип-isNot
объекты имеют разные типыWake up, Neo, select all
$var = 555
$var -is [int]
# True
$var = "555"
$var -isNot [int]
# False
Разделение / Соединение
-split
разделяет одну или несколько строк на подстроки
По умолчанию разделителем являются пробелы, включая пробелы и непечатаемые символы, например символ новой строки и знак табуляции.Wake up, Neo, select all
-split "red yellow blue green"
<#
red
yellow
blue
green
#>Можно указать собственный делитель. По умолчанию делителем является регулярное выражение.
Wake up, Neo, select all
"Hello1,2World7!" -split "\d"
<#
Hello
,
World
!
#>-Join
объединяет набор строк в одну строку.
По умолчанию объединение происходит без разделителей.Wake up, Neo, select all
$a = "a", "b", "c"
-join $a
# abcМожно указать собственный разделитель.
Wake up, Neo, select all
$a = "a", "b", "c"
$a -join "/"
# a/b/c
По умолчанию операторы не чувствительны к регистру. Для использования операторов с учетом регистра,
добавьте перед оператором символ c, например: -cmatch ; -clike ; и т.д. .