Поделиться через


Сведения об операторах

Краткое описание

Описывает операторы, поддерживаемые PowerShell.

Подробное описание

Оператор — это элемент языка, который можно использовать в команде или выражении. PowerShell поддерживает несколько типов операторов для управления значениями.

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

Используйте арифметические операторы (+, -, *, /, %) для вычисления значений в команде или выражении. С помощью этих операторов можно сложить, вычесть, умножить или разделить значения, а также вычислить остаток (модуль) операции деления.

Оператор сложения объединяет элементы. Оператор умножения возвращает указанное количество копий каждого элемента. Арифметические операторы можно использовать в любом типе .NET, который их реализует, например, Int, String, DateTimeHashtable, и Массивы.

Дополнительные сведения см. в разделе about_Arithmetic_Operators.

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

Используйте операторы присваивания (=, +=, -=, *=/=, , ) %=для назначения, изменения или добавления значений в переменные. Арифметические операторы можно объединить с назначением, чтобы назначить результат арифметической операции переменной.

Дополнительные сведения см. в разделе about_Assignment_Operators.

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

Используйте операторы сравнения (-eq, -ne, -gt, -lt, -le, ) -geдля сравнения значений и условий тестирования. Например, можно сравнить два строковых значения, чтобы определить, равны ли они.

Операторы сравнения также включают операторы, которые находят или заменяют шаблоны в тексте. Операторы (, , ) используют регулярные выражения, а (-like, -notlike) используют подстановочные знаки *. -replace-notmatch-match

Операторы сравнения вложения определяют, отображается ли тестовое значение в наборе ссылок (-in, , -notin, -contains-notcontains).

Операторы сравнения типов (-is, ) определяют, -isnotявляется ли объект заданным типом.

Операторы побитового сравнения (-bAND, -bOR, -bXOR, -bNOT) управляют битовые шаблоны в значениях.

Дополнительные сведения см. в разделе about_Comparison_Operators.

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

Используйте логические операторы (-and, -or, -xor, -not, !) для соединения условных операторов в единый сложный условный оператор. Например, можно использовать логический -and оператор для создания фильтра объектов с двумя разными условиями.

Дополнительные сведения см. в разделе about_Logical_Operators.

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

Используйте операторы перенаправления (>, >>, 2>, 2>>и 2>&1) для отправки выходных данных команды или выражения в текстовый файл. Операторы перенаправления работают аналогично командлету Out-File (без параметров), но также позволяют перенаправлять выходные данные ошибок в указанные файлы. Вы также можете использовать командлет для перенаправления Tee-Object выходных данных.

Дополнительные сведения см. в разделе about_Redirection

Операторы разделения и соединения

Операторы -split и -join делят и объединяют подстроки. Оператор -split разделяет строку на подстроки. Оператор -join объединяет несколько строк в одну строку.

Дополнительные сведения см. в разделе about_Split и about_Join.

Операторы работы с типами

Используйте операторы типа (-is, -isnot, -as), чтобы найти или изменить тип платформа .NET Framework объекта.

Дополнительные сведения см. в разделе about_Type_Operators.

Унарные операторы

Используйте унарные операторы для увеличения или уменьшения переменных или свойств объекта, а также для задания целых чисел положительным или отрицательным числам. Например, чтобы увеличить переменную $a с 9 до 10, введите $a++.

Специальные операторы

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

@( ) Оператор subexpression массива

Возвращает результат одного или нескольких операторов в виде массива. Если имеется только один элемент, массив имеет только один член.

@(Get-WmiObject win32_logicalDisk)

& Оператор вызова

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

В этом примере команда сохраняется в строке и выполняется с помощью оператора call.

PS> $c = "get-executionpolicy"
PS> $c
get-executionpolicy
PS> & $c
AllSigned

Оператор вызова не анализирует строки. Это означает, что нельзя использовать параметры команды в строке при использовании оператора вызова.

PS> $c = "Get-Service -Name Spooler"
PS> $c
Get-Service -Name Spooler
PS> & $c
& : The term 'Get-Service -Name Spooler' is not recognized as the name of a
cmdlet, function, script file, or operable program. Check the spelling of
the name, or if a path was included, verify that the path is correct and
try again.
At line:1 char:2
+ &$c
+  ~~
    + CategoryInfo          : ObjectNotFound: (Get-Service -Name Spooler:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Командлет Invoke-Expression может выполнять код, который вызывает ошибки синтаксического анализа при использовании оператора вызова.

PS> &"1+1"
& : The term '1+1' is not recognized as the name of a cmdlet, function, script
file, or operable program. Check the spelling of the name, or if a path was
included, verify that the path is correct and try again.
At line:1 char:2
+ &"1+1"
+  ~~~~~
    + CategoryInfo          : ObjectNotFound: (1+1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
PS> Invoke-Expression "1+1"
2

Оператор вызова можно использовать для выполнения скриптов с использованием их имен файлов. В приведенном ниже примере показано имя файла скрипта, содержащее пробелы. При попытке выполнить скрипт PowerShell вместо этого отображает содержимое строки в кавычках, содержащей имя файла. Оператор call позволяет выполнить содержимое строки, содержащей имя файла.

PS C:\Scripts> Get-ChildItem

    Directory: C:\Scripts


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        8/28/2018   1:36 PM             58 script name with spaces.ps1

PS C:\Scripts> ".\script name with spaces.ps1"
.\script name with spaces.ps1
PS C:\Scripts> &".\script name with spaces.ps1"
Hello World!

Дополнительные сведения о блоках скриптов см . в разделе about_Script_Blocks.

[ ] Оператор cast

Преобразует или ограничивает объекты указанным типом. Если не удается преобразовать объекты, PowerShell выдает ошибку.

[datetime]$birthday = "1/20/88"
[int64]$a = 34

, Оператор "Запятая"

В качестве двоичного оператора запятая создает массив. В качестве унарного оператора запятая создает массив с одним элементом. Поместите запятую перед элементом.

$myArray = 1,2,3
$SingleArray = ,1

. Оператор точечных источников

Запускает скрипт в текущем область, чтобы все функции, псевдонимы и переменные, создаваемые скриптом, добавлялись в текущий область.

. c:\scripts\sample.ps1

Примечание

За оператором источников точек следует пробел. Используйте пробел, чтобы отличить точку от символа точки (.), представляющего текущий каталог.

В следующем примере скрипт Sample.ps1 в текущем каталоге выполняется в текущем область.

. .\sample.ps1

-f Оператор Format

Форматирует строки с помощью метода форматирования строковых объектов. Введите строку форматирования в левой части оператора и объекты для форматирования в правой части оператора.

"{0} {1,-10} {2:N}" -f 1,"hello",[math]::pi
1 hello      3.14

Дополнительные сведения см. в разделах Метод String.Format и Составное форматирование.

[ ] Оператор Index

Выбирает объекты из индексированных коллекций, таких как массивы и хэш-таблицы. Индексы массива отсчитываются от нуля, поэтому первый объект индексируется как [0]. Для массивов (только) можно также использовать отрицательные индексы для получения последних значений. Хэш-таблицы индексируются по значению ключа.

PS> $a = 1, 2, 3
PS> $a[0]
1
PS> $a[-1]
3
(Get-HotFix | Sort-Object installedOn)[-1]
$h = @{key="value"; name="PowerShell"; version="2.0"}
$h["name"]
PowerShell
$x = [xml]"<doc><intro>Once upon a time...</intro></doc>"
$x["doc"]
intro
-----
Once upon a time...

| Оператор конвейера

Отправляет ("каналы") выходные данные команды, которая предшествует команде, которая следует за ней. Если выходные данные содержат несколько объектов (коллекция), оператор конвейера отправляет объекты по одному за раз.

Get-Process | Get-Member
Get-PSSnapin | Where-Object {$_.vendor -ne "Microsoft"}

. Оператор разыменования свойств

Обращается к свойствам и методам объекта .

$myProcess.peakWorkingSet
(Get-Process PowerShell).kill()

.. Оператор Range

Представляет последовательные целые числа в массиве целых чисел с учетом верхней и нижней границ.

1..10
10..1
foreach ($a in 1..$max) {Write-Host $a}

:: Статический оператор-член

Вызывает оператор статических свойств и методы класса платформа .NET Framework. Чтобы найти статические свойства и методы объекта, используйте параметр Static командлета Get-Member .

[datetime]::now

$( ) Оператор Subexpression

Возвращает результат одного или нескольких операторов. Для одного результата возвращает скаляр. Для нескольких результатов возвращает массив.

$($x * 23)
$(Get-WmiObject win32_Directory)

См. также раздел

about_Arithmetic_Operators

about_Assignment_Operators

about_Comparison_Operators

about_Logical_Operators

about_Type_Operators

about_Split

about_Join

about_Redirection