Символьные строки PowerShell
Символьные строки PowerShell предоставляет в виде объектов типа system.string, которые являют собой последовательность 32-битовых символов в кодировке Unicode. Система не накладывает ограничения на строку PowerShell. Любую строку можно заключить в одинарные или двойные кавычки, например:
PS С:\>$a='одинарные кавычки' одинарные кавычки PS С:\>$b="двойные кавычки " двойные кавычки
Можно использовать в середине строки любые символы (в том числе символы разрыва строки и возврата каретки), кроме соответствующего одиночного закрывающего символа (одинарной или двойной кавычки). В середине одинарных кавычек могут находится и двойные кавычки и наоборот, например:
PS С:\> 'текст в "одинарных" кавычках' Текст в "одинарных" кавычках PS С:\> "текст в 'двойных' кавычках" Текст в 'двойных' кавычках
Что бы вставить в середину текста двойную или одинарную кавычку, то их надо прописать дважды, например:
PS С:\> $a='текст в ''одинарных кавычках' PS С:\> $a текст в 'одинарных кавычках PS С:\> $b="Строка в ""двойных кавычках" PS С:\> $b Строка в "двойных кавычках
Теперь рассмотрим такой пример, создадим переменную PowerShell $c и присвоим ей значение 111, а далее вставим ее в середину строки:
PS С:\> $c=111 PS С:\> "переменная c равна $c" "переменная c равна 111" PS С:\> 'переменная c равна $c' переменная c равна $c
Как видим, подстановка значения в переменную $c происходит только, если она находится в строке с двойными кавычками. Что бы переменная не принимала своего значения и в двойных кавычках, то перед ней надо поставить символ обратного апострофа `, например:
PS С:\> "переменная c равна `$c" переменная c равна $c
Строки PowerShell позволяют в своем составе содержать символы escape-последовательностей, таких как возврат каретки или разрыв строки, для этого, перед символом escape-последовательности надо вставить символа обратного апострофа`, ниже приведен список escape-последовательности PowerShell, которые вы можете вставить в строки:
`n – разрыв строки
`r – возврат каретки
`t – горизонтальная табуляция
`a – звуковой сигнал
`b – забой (backspace)
`’ – одинарная кавычка
`” – двойная кавычка
`0 – пустой символ
“ – обратный апостроф
PowerShell допускает вставку не только готовых переменных, но и математических операций, например:
PS С:\> "Сума 3 и 2 дает $(3+2)" Сума 3 и 2 дает 5
PowerShell в добавок к обычным строкам (одинарные или двойные кавычки) предоставляет пользователю так называемые автономные строки (также известные под именем строк типа “here-string”). Они могут использоваться, если надо вставить в сценарий большой блок текста или для генерации текстовой информации для других программ, их формат следующий:
@<кавычка><разрыв_строки>блок текста<разрыв_строки><кавычка>@
В качестве кавычек можно использовать как двойные, так и одинарные, суть их остается одна, то есть, переменные и выражения внутри двойных кавычек изменяются на их значения, а внутри одинарных – остаются без изменения. Ниже приведен пример использования автономных строк PowerShell:
PS С:\> $а=@" >> 1 Первая строка >> $(1+1) Вторая строка >> "Третья строка" >> "@ >> PS С:\> $а 1 Первая строка 2 Вторая строка "Третья строка" PS С:\> $а=@' >> 1 Первая строка >> $(1+1) Вторая строка >> 'Третья строка' >> '@ PS С:\> $а 1 Первая строка $(1+1) Вторая строка 'Третья строка'
Как видим, использование автономных строк в PowerShell позволяет избегать вода длинной строки с использование символов escape-последовательности.
Советую почитать:
Опубликовано в рубрике PowerShell