РАЗДЕЛ
    about_Quoting_Rules

КРАТКОЕ ОПИСАНИЕ
    Описывает правила использования одиночных и двойных кавычек в Windows 
    PowerShell.


ПОЛНОЕ ОПИСАНИЕ
    Кавычки используются для задания литеральных строк. Строку можно 
    заключить в одиночные (') или двойные (") кавычки.
 

    Кавычки также используются для создания автономных строк. 
    Автономная строка - это строка, заключенная в одиночные или 
    двойные кавычки, в которой кавычки интерпретируются буквально. 
    Автономная строка может состоять из нескольких строк. Все строки 
    в автономной строке интерпретируются как строки, даже несмотря на 
    то что они не заключены в кавычки.


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


 Строки, заключенные в одиночные и двойные кавычки

      Если строка заключена в двойные кавычки, имена переменных, 
      перед которыми стоит знак доллара ($), заменяются значениями 
      переменных перед передачей строки команде для обработки.
 

      Пример:

          $i = 5
          "Значение $i: $i."


      Выходные данные команды: 

          Значение 5: 5.


      Кроме того, в строке, заключенной в двойные кавычки, 
      вычисляются выражения, и результат вставляется в строку. Пример:

	  "Значение $(2+3): 5."


      Выходные данные команды:

	  Значение 5: 5.


      Строка, заключенная в одиночные кавычки, передается команде 
      точно в том виде, в котором она введена. Подстановок не 
      производится. Пример:

          $i = 5
          'Значение $i: $i.'


      Выходные данные команды: 

          Значение $i: $i.


      Кроме того, выражения, заключенные в одиночные кавычки, не 
      вычисляются. Они интерпретируются как литералы. Пример:

	  'Значение $(2+3): 5.'


      Выходные данные команды:

	  Значение $(2+3): 5.


      Для предотвращения подстановки значения переменной в строке, 
      заключенной в двойные кавычки, используйте обратный апостроф 
      (`)[код ASCII 96], который является escape-символом Windows 
      PowerShell.


      В следующем примере перед первым вхождением переменной $i 
      указан обратный апостроф (`), в результате чего Windows 
      PowerShell не заменяет имя переменной ее значением. Пример:

          $i = 5
          "Значение `$i: $i."


      Выходные данные команды: 

          Значение $i: 5.
     
    
      Для отображения двойных кавычек в строке необходимо заключить 
      всю строку в одиночные кавычки. Пример:

          'Как говорится, "учись, пока жив".'


      Выходные данные команды:

          Как говорится, "учись, пока жив".


      Также можно заключить строку, содержащую одиночные кавычки, 
      в двойные кавычки. Пример:

          "Как говорится, 'учись, пока жив'."


      Выходные данные команды:

          Как говорится, 'учись, пока жив'.


      Кроме того, можно заключить строку, содержащую двойные кавычки, 
      в двойные кавычки. Пример:

          "Как говорится, ""учись, пока жив""."


      Выходные данные команды:

          Как говорится, "учись, пока жив".


      Для включения одиночной кавычки в строку, заключенную в 
      одиночные кавычки, используйте одиночную кавычку два раза 
      подряд. Пример:

          'don''t'


      Выходные данные команды:

          don't


      Чтобы оболочка Windows PowerShell интерпретировала двойные 
      кавычки буквально, используйте обратный апостроф. Это не 
      позволяет оболочке Windows PowerShell интерпретировать кавычку 
      как разделитель строк. Пример:

          "Используйте двойную кавычку (`") в начале строки."


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

 
      Например, следующая команда выдает ошибку, поскольку Windows 
      PowerShell не распознает escape-символ. Эта команда 
      интерпретирует вторую кавычку как конец строки.


	  PS C:\> 'Используйте одиночную кавычку (`') в начале строки.'
          Неожиданный токен ")" в выражении или инструкции.
          В строке:1 знак:27
          + 'Используйте одиночную кавычку (`') <<<< в начале строки.'


 Автономные строки, заключенные в одиночные и двойные кавычки

      Правила использования кавычек в автономных строках немного 
      отличаются.


      Автономная строка - это строка, заключенная в одиночные или 
      двойные кавычки, в которой кавычки интерпретируются буквально. 
      Автономная строка может состоять из нескольких строк. Все 
      строки в автономной строке интерпретируются как строки, даже 
      несмотря на то что они не заключены в кавычки.


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

 
      Автономные строки можно использовать в случае любого текста, но 
      они являются особенно полезными в случае текста следующих типов.

          - Текст, в котором содержатся литералы в кавычках Текст, 
          - состоящий из нескольких строк, например HTML- или XML-документ 
          - Текст справки для скрипта или функции


      Автономная строка может иметь один из следующих форматов, где 
      <Ввод> означает перевод строки или скрытый символ новой строки, 
      который добавляется при нажатии клавиши ВВОД.
 

      Формат 1:

	  @"<Ввод>
          <строка> [строка] ...<Ввод>
          "@


      Формат 2:
 
	  @'<Ввод>
          <строка> [строка] ...<Ввод>
          '@


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

   
      В автономной строке содержится весь текст между двумя скрытыми 
      символами.
      В автономной строке все кавычки интерпретируются буквально.
      Пример:

	  @"
	  Для отображения справки введите команду "get-help"
	  "@

    
      Выходные данные команды:

	  Для отображения справки введите команду "get-help"


      Применение автономной строки позволяет упростить используемую в 
      команде строку. Пример:

	  @"
          Используйте одиночную кавычку (') в начале строки.
          "@

	    
      Выходные данные команды:

          Используйте одиночную кавычку (') в начале строки.


      В автономных строках, заключенных в одиночные кавычки, переменные 
      интерпретируются буквально и воспроизводятся точно в том виде, в 
      котором они заданы. Пример:

          @'
	  В переменной $profile содержится путь
          к вашему профилю Windows PowerShell.
          '@


      Выходные данные команды:

	  В переменной $profile содержится путь
          к вашему профилю Windows PowerShell.


      В автономных строках, заключенных в двойные кавычки, переменные 
      заменяются своими значениями. Пример:

	  @" 
          Даже если профиль не создан, задан следующий путь к профилю:
          $profile.
          "@

    
      Выходные данные команды:

	  Даже если профиль не создан,
	  задан следующий путь к профилю:
	  C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1.


      Автономные строки обычно используются для присвоения переменной 
      значения, состоящего из нескольких строк. Например, следующая 
      автономная строка позволяет присвоить переменной $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>Форматирует вывод в виде таблицы.</maml:para> 
		    </maml:description>
		    <command:verb>format</command:verb>
		    <command:noun>table</command:noun>
		    <dev:version></dev:version>
 	    </command:details>
        ...
        </command:command>
        "@
   

      Автономные строки также являются удобным форматом входных данных для 
      командлета ConvertFrom-StringData, который преобразует автономные 
      строки в хэш-таблицы. Дополнительные сведения см. в описании 
      командлета ConvertFrom-StringData.


СМ. ТАКЖЕ
    about_Escape_Characters
    ConvertFrom-StringData




Содержание