about_Special_Characters
Краткое описание
Описывает специальные последовательности символов, управляющие интерпретацией следующих символов в последовательности PowerShell.
Подробное описание
PowerShell поддерживает набор специальных последовательностей символов, которые используются для представления символов, которые не являются частью стандартного набора символов. Последовательности обычно называются escape-последовательности.
Escape-последовательности начинаются с символа обратной черты, известного как серьезный акцент (ASCII 96), и учитывает регистр. Символ backtick также может называться escape-символом.
Escape-последовательности интерпретируются только в том случае, если они содержатся в строках с двойными кавычками ("
).
PowerShell распознает эти escape-последовательности:
Последовательность | Description |
---|---|
`0 |
Null |
`a |
Предупреждение |
`b |
Backspace |
`f |
Подача страницы |
`n |
Новая строка |
`r |
Возврат каретки |
`t |
Горизонтальная табуляция |
`v |
Вертикальная табуляция |
PowerShell также имеет специальный маркер, чтобы пометить место остановки синтаксического анализа. Все символы, следуйте этому маркеру, используются в качестве литеральных значений, которые не интерпретируются.
Специальные маркеры синтаксического анализа:
Последовательность | Description |
---|---|
-- |
Обработка оставшихся значений в качестве аргументов не параметров |
--% |
Остановите синтаксический анализ всего следующего |
~ |
Тильда |
Null ('0)
Символ NULL (`0
) отображается как пустое пространство в выходных данных PowerShell.
Эта функция позволяет использовать PowerShell для чтения и обработки текстовых файлов, использующих пустые символы, такие как завершение строки или индикаторы завершения записи. Специальный символ NULL не эквивалентен переменной $null
, которая сохраняет значение NULL .
Оповещение ('a)
Символ оповещений (`a
) отправляет сигнал звукового сигнала динамику компьютера.
Этот символ можно использовать для предупреждения пользователя о предстоящем действии. В следующем примере отправляется два сигнала сигнала на динамик локального компьютера.
for ($i = 0; $i -le 1; $i++){"`a"}
Backspace ('b)
Символ backspace (`b
) перемещает курсор назад один символ, но не удаляет никаких символов.
В примере выполняется запись резервной копии слова, а затем дважды перемещается курсор. Затем, в новой позиции, записывает пробел, за которым следует слово.
"backup`b`b out"
back out
Веб-канал формы ('f)
Символ веб-канала`f
формы — это инструкция печати, которая извлекает текущую страницу и продолжает печать на следующей странице. Символ веб-канала формы влияет только на печатные документы. Это не влияет на выходные данные экрана.
Новая строка ('n)
Новый символ строки`n
() вставляет разрыв строки сразу после символа.
В этом примере показано, как использовать новый символ строки для создания разрывов строк в команде Write-Host
.
"There are two line breaks to create a blank line`n`nbetween the words."
There are two line breaks to create a blank line
between the words.
Возврат каретки ('r)
Возвращаемый символ каретки`r
перемещает выходной курсор в начало текущей строки и продолжает писать. Все символы в текущей строке перезаписываются.
В этом примере текст перед возвратом каретки перезаписан.
Write-Host "These characters are overwritten.`rI want this text instead "
Обратите внимание, что текст перед `r
удалением символа не будет перезаписан.
I want this text instead written.
Горизонтальная вкладка (не)
Символ горизонтальной вкладки`t
() перемещается к следующей остановке табуляции и продолжает писать в этот момент. По умолчанию консоль PowerShell имеет остановку табуляции в каждом восьмом пространстве.
В этом примере между каждым столбцом вставляется две вкладки.
"Column1`t`tColumn2`t`tColumn3"
Column1 Column2 Column3
Вертикальная вкладка ('v)
Символ вертикальной вкладки`v
() перемещается к следующей вертикальной остановке табуляции и записывает оставшиеся выходные данные в этой точке. Отрисовка вертикальной вкладки зависит от устройства и терминала.
Write-Host "There is a vertical tab`vbetween the words."
В следующих примерах показаны отрисованные выходные данные вертикальной вкладки в некоторых распространенных средах.
Ведущее приложение консоли Windows интерпретирует (`v
) как специальный символ без дополнительных интервалов.
There is a vertical tab♂between the words.
Терминал Windows отображает символ вертикальной вкладки в виде возврата каретки и канала строки. Остальная часть выходных данных печатается в начале следующей строки.
There is a vertical tab
between the words.
На принтерах или в консоли на основе unix символ вертикальной вкладки перемещается к следующей строке и записывает оставшиеся выходные данные в этой точке.
There is a vertical tab
between the words.
Продолжение строки
Символ backtick также можно использовать в конце строки в качестве сигнала синтаксического анализа PowerShell, который команда продолжается в следующей строке. Дополнительные сведения см. в about_Parsing.
Маркер конца параметров (--
)
Маркер конца параметров (--
) указывает, что все аргументы, следующие за ним, должны быть переданы в их фактической форме, как будто двойные кавычки были помещены вокруг них. Например, используя --
строку, можно вывести строку -InputObject
, не используя кавычки или интерпретировав ее как параметр:
Write-Output -- -InputObject
-InputObject
Это соглашение, указанное в спецификации оболочки POSIX и служебных программ.
Маркер остановки синтаксического анализа (--%)
Маркер остановки синтаксического анализа (--%
) предотвращает интерпретацию строк PowerShell в виде команд и выражений PowerShell. Это позволяет передавать эти строки другим программам для интерпретации.
Поместите маркер остановки синтаксического анализа после имени программы и до аргументов программы, которые могут вызвать ошибки.
В этом примере Icacls
команда использует маркер остановки синтаксического анализа.
icacls X:\VMS --% /grant Dom\HVAdmin:(CI)(OI)F
PowerShell отправляет следующую строку Icacls
в .
X:\VMS /grant Dom\HVAdmin:(CI)(OI)F
В этом втором примере переменная $HOME
передается команде cmd.exe /c echo
дважды.
cmd.exe /c echo $HOME --% $HOME
Выходные данные показывают, что первый экземпляр $HOME
интерпретируется PowerShell, чтобы значение переменной передается cmd
в . Второй экземпляр $HOME
происходит после маркера остановки синтаксического анализа, поэтому он передается в виде литеральной строки.
C:\Users\username $HOME
Дополнительные сведения о маркере остановки анализа см. в about_Parsing.
Тильде (~)
Символ тильды (~
) имеет особое значение в PowerShell. При использовании с командами PowerShell в начале пути PowerShell расширяет символ тильды в домашнем каталоге пользователя. Если вы используете символ тильды в любом другом месте пути, он рассматривается как литеральный символ.
Дополнительные сведения о маркере остановки анализа см. в about_Parsing.
См. также
PowerShell