Всякие загогулинки

Прозвучал такой «вопрос»:

не особо понятно значение кавычек, двойных кавычек, скобок и фигурных скобок

Действительно, в PoSh используется множество символов, применение которых не всегда очевидно🙂

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

"Обычные двойные кавычки. Как и все кавычки в PowerShell их можно продолжать
с новой строки (в том числе и в интерактивном режиме). Кроме того если
использовать в тексте название переменной, то вставится её значение,
например так: $VerbosePreference или так: $env:ProgramFiles."

'Одинарные кавычки, вообщем похожи на двойные, только при использовании тут 
переменных они не превращаются в значения, то есть $VerbosePreference так и 
останется $VerbosePreference'

@"
Насколько я знаю, такая конструкция называется "Here String", она позволяет
использовать внутри текста практически любые элементы кроме закрывающей
конструкции - @" только в обратной последовательности :) Как и в
простых двойных кавычках тут можно использовать переменные и они будут 
преобразованы в значения: $PROFILE. Кстати если надо вставить что то 
посложнее чем одна переменная то можно использовать следующую 
конструкцию: $(Get-Process | sort cpu | select -last 3 | %{$_.name}) (и в "" 
тоже можно) причем если в результате получен массив то он автоматически 
преобразуется в строку с разделителем равным значению переменной `$ofs - 
Output Field Separator. По умолчанию эта переменная равна " ". Для того чтобы 
отобразилась сама переменная а не её значение я использовал символ 
апострофа - "``" (тут должно было быть 2 апострофа в кавычках, один для 
экранирования другого), именно он используется в PowerShell для экранирования 
символов.
"@

@'
Ну и эта конструкция полностью аналогична предыдущей, за исключением того что
тут как и в '' не надо экранировать переменные - $ofs.
'@

"Ну и напоследок, несколько возможностей применения (кроме присваивания 
переменным :) например сразу можно применить какой либо метод:".split()

'или передать строку по конвейеру' | Write-Host -ForegroundColor red

Write-Host -Object @"
Или использовать как параметры в командлетах :)
"@ -ForegroundColor red 
# Указывая название я не использовал кавычки, тут всего одно слово, PowerShell 
# и так разберется :)

Пока всё, о скобках расскажу в следующий раз🙂 Чтобы посмотреть эти примеры в действии — их можно просто вставить в окно PowerShell и пару раз нажать Enter (для завершения многострочного ввода).

PS: не получится вставить, нехороший wordpress заменяет половину кавычек на всякие фигурные, а PowerShell на них ругается. Всё равно лучше самим попробовать поэксперементировать🙂

Опубликовано в PowerShell. Комментарии к записи Всякие загогулинки отключены
%d такие блоггеры, как: