Символы и операторы
Основные
#- комментарии<#...#>- комментарий с разделителями`- указание спец. символов внутри кавычек-(тире) - ставится перед названиями параметров функций/командлетов/буквенных операторов%- математический оператор возвращающий остаток от деления (11 % 5 = 1)%{}– заменяет командлетForEach-Object;- символ разделения строк (чтобы в коде писать несколько строк в одну)=- оператор присвоения&{}– встраивает scriptblock в выражение?- заменяет командлетWhere-Object:- для указания параметров-переключателей.– обращение к динамическим методам класса ($datatable.Rows.Count)..– разделитель диапазона (1..4 = @(1,2,3,4))::– обращение к статическим методам класса ([Console]::WriteLine("PowerShell"))@- оператор массива:заставляет значение быть массивом, даже если оно одноэлементное или нулевое;
может создавать хэш таблицы:
@{"Key" = "Value";"Key2"="Value2"}используется для Сплаттинга, т.е. передачи параметров функции в виде массива или словаря (
@arr / @dic)
|- конвейер (как лямбда):($obj| \cmdlet\) / ($collection[]| \cmdlet\)- выполняет командлет для объекта;$collection=@()| Foreach-Object{$_}- цикл, в котором как итератор используется$_;($proc = Get-Process Notepad* ) | Stop-Process- убивает все процессы содержащие в имениNotepadи возвращает все убитые процессы в$proc;(Get-Process Notepad* ) | Stop-Process- без возврата списка.
Операторы сравнения
-match "#pattern#"- использование регулярных выражений-is [type]- проверка типов-isNot [type]- проверка типов
Подробнее об операторах сравнения, арифметических и логических операторах:
Условия в массивах
-$array -\оператор сравнения\ $obj- возвращение массива объектов результатов сопоставления каждого элемента с объектом, или False (не пустой массив равен True для логических выражений)-contains- массив содержит объект (bool)-notcontains- массив НЕ содержит объект (bool)-in- объект есть в массиве (bool)-notin- объект отсутствует в массиве (bool)
contains & in отличаются записью $arr -contains $obj / $obj -in $arr
Скобки
()– Круглые скобки:передача аргументов,
приложение нескольких инструкций (к примеру),
разрешение неоднозначности (действия в скобках выполняются сначала),
создание массивов.
{}- Брекеты скобки:приложение инструкции (к примеру, в блоке if),
встраивание скрипта в выражение (scriptblock).
[]- Квадратные скобки:доступ к элементам массивов хеш-таблиц,
фильтр с использованием регулярного выражения,
указание ожидаемого типа данных для выражения,
обращение к пространству имён.
Кавычки
" "- позволяют поместить внутри название переменной, и автоматически преобразовать в её значение.' '- позволяют поместить внутри название переменной, но НЕ преобразовывать в её значение.
Кавычки поддерживают многострочность в коде (ENTER переносит на следующую строку код, `n - перенос строки выводе).
Кавычки экранируются двойной кавычкой (как в VB) + одинарные не надо экранировать внутри двойных и наоборот.
Кавычки, заключённые в символ @ (до и после), называются HereString и внутри них все символы идут как текст. В коде после '@"' и перед '"@' должен стоять ENTER.
Знак $
$- переменные$$- окончание последней выполненной команды, например$a="Hello"; $b=$$итого$b = "Hello"$^- начало последней выполненной команды, например$a="Hello"; $b=$^итого$b = "$a".$_ ($PSItem)- применяется для передачи значения при использовании конвейера (|).$?- хранящая статус выполнения предыдущей команды. Возвращает True если команда была выполнена успешно и False — если с ошибкой.$()- применяется для выделения подвыражения в строке при использовании двойных кавычек. В этом случае выражение в скобках обрабатывается в первую очередь.${}- позволяет использовать в имени переменной нестандартные символы. Например:${@,&$>?=*} = ″Hello, world″.
Escape-последовательности
PowerShell поддерживает набор специальных последовательностей символов, которые используются для представления символов, не входящих в стандартную кодировку.
Последовательности обычно называют escape-последовательностями.
Escape-последовательности начинаются с символа обратной косой черты, называемого грависом (ASCII 96), и учитывают регистр.
Символ обратной кавычки также может называться Escape- символом.
Escape-последовательности обрабатываются только в строках, содержащихся в двойных или одинарных кавычках.
`0- NULL (не эквивалентен $null)`a- Предупреждение`b- Backspace`e- ESC`f- Перевод страницы`n- Новая строка`r- Возврат каретки`t- Горизонтальная табуляция`u{x}- Escape-последовательность Юникода`v- Вертикальная табуляция
Last updated