- •Введение
- •Часть 1: Четыре командлета - ключи, открывающие PowerShell
- •Ключ #1: Get-Command
- •Ключ #2: Get-Help
- •Ключ #3: Get-Member
- •Ключ #4: Get-PSDrive
- •Дополнение для PowerShell 2.0
- •Часть 2: Понимание вывода объектов
- •Вывод - это всегда объект .NET
- •Функция возвращает все, что не попало в поток вывода
- •Другие типы вывода, которые не могут быть захвачены
- •Часть 3: Как объекты передаются по конвейеру
- •Часть 4: Разнообразие вывода - скаляры, коллекции и пустые наборы - о, боже!
- •Скаляры
- •Работа с коллекциями
- •Работа с пустыми наборами
- •Часть 5: Используй объекты, Люк. Используй объекты!
- •Часть 6: Как форматируется вывод
- •Часть 7: Режимы синтаксического разбора PowerShell
- •Часть 8: Параметры привязки элементов конвейера ByPropertyName (по имени)
- •Часть 9: Параметры привязки элементов конвейера ByValue (по значению)
- •Часть 10: Регулярные выражения – один из мощнейших инструментов PowerShell
- •Дополнение для PowerShell 2.0
- •Часть 11: Сравнение массивов
- •Часть 12: Старайтесь использовать Set-PSDebug -Strict в своих сценариях
- •Примечание для PowerShell 2.0
- •Часть 13: Комментирование строк в файле сценария
- •Дополнение для PowerShell 2.0
- •Дополнительные материалы
Далее, закрывающие символы '@ должны начинаться с начала строки, иначе вы получите ещё одну загадку:
Encountered end of line while processing a string token. At C:\Temp\foo.ps1:1 char:3
+ @' <<<<
Ещё одна особенность - в PowerShell 1.0 нельзя вложить одну автономную строку в другую строку того же типа. Это означает, что вы не можете использовать строку с одинарными кавычками для окружения
комментарием части сценария, если внутри этой части уже содержится строка с одинарными кавычками.
Дополнение для PowerShell 2.0
В PowerShell 2.0 введена корректная поддержка многострочных комментариев. Используются они так:
<# Это многострочный комментарий
в PowerShell 2.0 #>
И наконец-то, многострочный текст в PowerShell 2.0 может быть вложен друг в друга:
@"
<Processes>
$(Get-Process | Foreach {
@"
<Process name="$($_.name)" id="$($_.id)" workingSet="$($_.ws)">`r`n
"@
})
</Processes>
"@
Дополнительные материалы
Оригинал документа на английском языке вы можете загрузить с блога Keith Hill. Перевод выполнен Сергеем Вальковским для WindowsFAQ.ru. Дополнительные материалы и информацию о Windows PowerShell на русском языке можно найти в блогах Василия Гусева http://xaegr.wordpress.com, Андрея Бешкова http://blogs.technet.com/abeshkov/default.aspx, Дмитрия Сотникова http://www.itcommunity.ru/blogs/dmitrysotnikov/default.aspx, и на крупнейшем собрании видеоуроков по PowerShell на русском языке - http://www.techdays.ru/Category.aspx?Tag=PowerShell.
56