Практически в каждом языке программирования есть еscape-символы — специальные символы, с помощью которых можно изменять свойства следующих за ними символов. Наличие escape-символа говорит о том, что следующий за ним символ (или символы) следует обрабатывать особым образом. Комбинация escape-символа и следующих за ним символов называется escape-последовательностью.
В PowerShell в качестве escape-символа используется знак обратного апострофа (`). С его помощью можно производить следующие операции.
Экранирование переменной
Escape-символ перед знаком $ запрещает подставить вместо переменной ее значение. Например так мы получим значение переменной $a:
$a = 200
″The value is $a″
а так ее имя:
$a = 200
″The value is `$a″
Примечание. Обратите внимание, что escape-последовательности обязательно должны быть заключены в кавычки.
Еще пример. Предположим, что нам необходимо использовать знак $ (dollar) по его прямому назначению, например вывести фразу:
″It costs $200″
Однако после знака $ мы получим пустое место. А вот если перед знаком $ поставить escape-символ, то все получится как надо:
″It costs `$200″
Экранирование кавычек
В одной из предыдущих статей я описывал особенности использования кавычек в PowerShell. Напомню, что в одной строке нельзя использовать две пары одинаковых кавычек. Например следующая команды вызовет ошибку:
″He said ″yes″.″
В этой ситуации необходимо либо использовать разные типы кавычек, либо воспользоваться escape-символом. Если поместить его перед двойными кавычками, то PowerShell интерпретирует их как обычный символ, а не как разделитель строк:
″He said `″yes`″.″
Перенос строки
Escape-символ в конце строки указывает на то, что команда будет продолжена на следующей строке. Таким образом удобно разбивать на части длинные команды. Например:
Get-Process |`
where`
{$_.Name -match ″\d″}
Форматирование
Некоторые escape-последовательности при использовании с кавычками создают управляющие инструкции, с помощью которых можно управлять выводом. PowerShell понимает следующие последовательности:
`0 — пустой символ (Null);
`a — звуковой сигнал передается на системный динамик;
`b — возврат (backspace);
`f — печать с новой страницы;
`n — символ новой строки;
`r — возврат в начало строки;
`t — горизонтальная табуляция;
`v — вертикальная табуляция.
Их удобно использовать в том случае, если требуется определенным образом отформатировать вывод команды. Для примера оформим выходные данные в виде таблицы:
″`0 one `t two `t three n `0 `n four `t five `t six `n seven `t eight `t nine `n `0 ″
Справку по escape-последовательностям PowerShell можно вызвать командой Get-Help about_esc.