Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0
РАЗДЕЛ
about_Quoting_Rules
КРАТКОЕ ОПИСАНИЕ
Содержит описание правил использования одинарных и двойных кавычек в Windows PowerShell®.
ПОДРОБНОЕ ОПИСАНИЕ
Кавычки используются для задания литеральных строк. Строку можно заключить в одинарные (') или двойные (") кавычки.
Кавычки также используются для создания here-строк. Here-строка — это строка, заключенная в одинарные или двойные кавычки, в которой кавычки интерпретируются буквально. Here-строка может состоять из нескольких строк. Все строки в here-строке интерпретируются как строки даже несмотря на то, что они не заключены в кавычки.
В командах для удаленных компьютеров кавычки определяют части команды, выполняемые на удаленном компьютере. В удаленном сеансе кавычки также определяют, интерпретируются ли переменные в команде сначала на локальном, а затем на удаленном компьютере или наоборот.
СТРОКИ, ЗАКЛЮЧЕННЫЕ В ОДИНАРНЫЕ И ДВОЙНЫЕ КАВЫЧКИ
Если строка заключена в двойные кавычки, имена переменных, перед которыми стоит знак доллара ($), заменяются значениями переменных перед передачей строки в команду для обработки.
Например:
$i = 5
"The value of $i is $i."
Выходные данные команды:
The value of 5 is 5.
Кроме того, в строке, заключенной в двойные кавычки, вычисляются выражения, и результат вставляется в строку. Например:
"The value of $(2+3) is 5."
Выходные данные команды:
The value of 5 is 5.
Строка, заключенная в одинарные кавычки, передается в команду точно в том виде, в котором она введена. Подстановок не производится. Например:
$i = 5
'The value of $i is $i.'
Выходные данные команды:
The value $i is $i.
Кроме того, выражения, заключенные в одинарные кавычки, не вычисляются. Они интерпретируются как литералы. Например:
'The value of $(2+3) is 5.'
Выходные данные команды:
The value of $(2+3) is 5.
Для предотвращения подстановки значения переменной в строке, заключенной в двойные кавычки, используйте обратный апостроф (`) (код ASCII 96), который является escape-символом Windows PowerShell.
В примере ниже перед первым вхождением переменной $i указан обратный апостроф, в результате чего Windows PowerShell не заменяет имя переменной ее значением. Например:
$i = 5
"The value of `$i is $i."
Выходные данные команды:
The value $i is 5.
Для отображения двойных кавычек в строке нужно заключить всю строку в одинарные кавычки. Например:
'As they say, "live and learn."'
Выходные данные команды:
As they say, "live and learn."
Также можно заключить строку, содержащую одинарные кавычки, в двойные кавычки. Например:
"As they say, 'live and learn.'"
Выходные данные команды:
As they say, 'live and learn.'
Кроме того, можно заключить строку, содержащую двойные кавычки, в двойные кавычки. Например:
"As they say, ""live and learn."""
Выходные данные команды:
As they say, "live and learn."
Для включения одинарной кавычки в строку, заключенную в одинарные кавычки, используйте одинарную кавычку два раза подряд. Например:
'don''t'
Выходные данные команды:
don't
Чтобы среда Windows PowerShell интерпретировала двойные кавычки буквально, используйте обратный апостроф. Это не позволяет среде Windows PowerShell интерпретировать кавычку как разделитель строк. Например:
"Use a quotation mark (`") to begin a string."
Так как содержимое строки, заключенной в одинарные кавычки, интерпретируется буквально, в ней нельзя использовать обратный апостроф для принудительной интерпретации литерала.
Например, приведенная ниже команда выдает ошибку, так как Windows PowerShell не распознает escape-символ. Эта команда интерпретирует вторую кавычку как конец строки.
PS C:\> 'Use a quotation mark (`') to begin a string.'
Unexpected token ')' in expression or statement.
At line:1 char:27
+ 'Use a quotation mark (`') <<<< to begin a string.'
HERE-СТРОКИ
Правила использования кавычек в here-строках немного отличаются.
Here-строка — это строка, заключенная в одинарные или двойные кавычки, в которой кавычки интерпретируются буквально. Here-строка может состоять из нескольких строк. Все строки в here-строке интерпретируются как строки даже несмотря на то, что они не заключены в кавычки.
В here-строках, заключенных в двойные кавычки, переменные заменяются своими значениями так же, как в обычных строках. В here-строках, заключенных в одинарные кавычки, переменные не заменяются своими значениями.
Here-строки можно использовать в случае любого текста, но они особенно полезны в случае текста следующих типов:
– текст, в котором содержатся литералы кавычек;
– текст, состоящий из нескольких строк, например HTML- или XML-документ;
– текст справки для сценария или функции.
Here-строка может иметь один из указанных ниже форматов, где <Ввод> означает перевод строки или скрытый символ новой строки, который добавляется при нажатии клавиши ВВОД.
Double-quotes:
@"<Enter>
<string> [string] ...<Enter>
"@
Single-quotes:
@'<Enter>
<string> [string] ...<Enter>
'@
В обоих форматах закрывающая кавычка должна быть первым символом строки.
В here-строке содержится весь текст между двумя скрытыми символами. В here-строке все кавычки интерпретируются буквально. Например:
@"
For help, type "get-help"
"@
Выходные данные команды:
For help, type "get-help"
Применение here-строки позволяет упростить используемую в команде строку. Например:
@"
Use a quotation mark (') to begin a string.
"@
Выходные данные команды:
Use a quotation mark (') to begin a string.
В here-строках, заключенных в одинарные кавычки, переменные интерпретируются буквально и воспроизводятся точно в том виде, в котором они заданы. Например:
@'
The $profile variable contains the path
of your Windows PowerShell profile.
'@
Выходные данные команды:
The $profile variable contains the path
of your Windows PowerShell profile.
В here-строках, заключенных в двойные кавычки, переменные заменяются своими значениями. Например:
@"
Even if you have not created a profile,
the path of the profile file is:
$profile.
"@
Выходные данные команды:
Even if you have not created a profile,
the path of the profile file is:
C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.
Here-строки обычно используются для присвоения переменной значения, состоящего из нескольких строк. Например, приведенная ниже here-строка позволяет присвоить переменной $page страницу XML-документа.
$page = [XML] @"
<command:command xmlns:maml="https://schemas.microsoft.com/maml/2004/10"
xmlns:command="https://schemas.microsoft.com/maml/dev/command/2004/10"
xmlns:dev="https://schemas.microsoft.com/maml/dev/2004/10">
<command:details>
<command:name>
Format-Table
</command:name>
<maml:description>
<maml:para>Formats the output as a table.</maml:para>
</maml:description>
<command:verb>format</command:verb>
<command:noun>table</command:noun>
<dev:version></dev:version>
</command:details>
...
</command:command>
"@
Here-строки также являются удобным форматом входных данных для командлета ConvertFrom-StringData, который преобразует here-строки в хэш-таблицы. Дополнительные сведения см. в разделе ConvertFrom-StringData.
КЛЮЧЕВЫЕ СЛОВА
about_Here-Strings
about_Quotes
about_Quotation_Marks
СМ. ТАКЖЕ
about_Escape_Characters
ConvertFrom-StringData