Эффективное программирование в Windows PowerShell Разбираться в Windows PowerShell и получать от него больше
Скачать 0.88 Mb.
|
Эффективное программирование в Windows PowerShell Разбираться в Windows PowerShell и получать от него больше. Keith Hill Copyright © 2007-2009 3/8/2009 Содержание Введение.........................................................................................................................................................1 Часть 1: Четыре командлета - ключи, открывающие PowerShell.................................................................1 Ключ #1: Get-Command........................................................................................................................1 Ключ #2: Get-Help..................................................................................................................................2 Ключ #3: Get-Member...........................................................................................................................5 Ключ #4: Get-PSDrive.............................................................................................................................7 Дополнение для PowerShell 2.0...........................................................................................................8 Часть 2: Понимание вывода объектов...........................................................................................................9 Вывод - это всегда объект .NET ...........................................................................................................9 Функция возвращает все, что не попало в поток вывода................................................................10 Другие типы вывода, которые не могут быть захвачены.................................................................13 Часть 3: Как объекты передаются по конвейеру.........................................................................................14 Часть 4: Разнообразие вывода - скаляры, коллекции и пустые наборы - о, боже!..................................17 Скаляры...............................................................................................................................................17 Работа с коллекциями........................................................................................................................18 Работа с пустыми наборами..............................................................................................................19 Часть 5: Используй объекты, Люк. Используй объекты!............................................................................21 Часть 6: Как форматируется вывод.............................................................................................................25 Часть 7: Режимы синтаксического разбора PowerShell..............................................................................35 Часть 8: Параметры привязки элементов конвейера ByPropertyName (по имени).................................40 Часть 9: Параметры привязки элементов конвейера ByValue (по значению)...........................................43 Часть 10: Регулярные выражения – один из мощнейших инструментов PowerShell...............................48 Дополнение для PowerShell 2.0.........................................................................................................49 Часть 11: Сравнение массивов.....................................................................................................................50 Часть 12: Старайтесь использовать Set-PSDebug -Strict в своих сценариях ..............................................53 Примечание для PowerShell 2.0.........................................................................................................54 Часть 13: Комментирование строк в файле сценария................................................................................55 Дополнение для PowerShell 2.0.........................................................................................................56 Введение Я большой поклонник серии книг по эффективному программированию, таких как Effective COM и Effective XML. Не пытаясь быть слишком самонадеянным, я хочу продемонстрировать некоторые приёмы, накопленные мной за последние пару лет использования Windows PowerShell в интерактивном режиме и написания производственных и тестовых скриптов. Эти приемы были созданы на PowerShell 1.0. Там, где это необходимо, добавлен раздел Обновление для PowerShell 2.0, в котором поясняются изменения, необходимые с предстоящим выходом версии 2.0. В заключение, ряд примеров иллюстрирует повышение функциональности PowerShell с помощью расширений, разработанных сообществом PowerShell Community Extensions. Эти расширения можно загрузить с http://www.codeplex.com/PowerShellCX Оригинал документа на английском языке вы можете загрузить с блога 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 . Часть 1: Четыре командлета - ключи, открывающие PowerShell Эта часть относится скорее к основам PowerShell, чем к его эффективному применению. Тем не менее, эти четыре командлета имеют жизненно важное значение для выяснения того, что может PowerShell, и делает их заслуживающими внимания. Эти четыре командлета - то, что вы должны выучить в первую очередь. Они просты в использовании, но помогут вам начать использовать PowerShell эффективно. Ключ #1: Get-Command Этот командлет - лекарство от пустоты, приглашения PowerShell в никуда. В самом деле, вы только что установили PowerShell, запустили его, и теперь любуетесь этим: 1 А что дальше-то? Многие приложения страдают этим - "пустой экран смерти". Вы загрузили приложение, установили его, запустили - и теперь перед вами пустая рамка окна или документ, в котором ничего нет. Зачастую нет ничего, что могло бы вам подсказать, как начать пользоваться новым приложением. Командлет Get-Command позволит вам начать работу с PowerShell, показав список всех доступных команд. Это касается и ваших старых консольных приложений, пакетных файлов, сценариев VBScript и т. д. По существу, любой исполняемый файл может быть запущен из PowerShell. Конечно же, вы устанавливали PowerShell не только для того, чтобы запускать свои старые скрипты и приложения. Вы хотите узнать, что может PowerShell. Попробуйте вот так: PS> Get-Command CommandType Name Definition ----------- ---- ---------- Cmdlet Add-Content Add-Content [-Path] А если вы хотите посмотреть общие справочные разделы, наберите PS> Get-Help about* Name Category Synopsis ---- -------- -------- about_alias HelpFile Использование альтернативных имен ко... about_arithmetic_operators HelpFile Операторы, которые используются в ко... about_array HelpFile Компактная структура размещения элем... Давайте теперь попробуем применить Get-Help к командлету Get-Command и посмотрим, что мы еще можем получить с помощью Get-Command: PS> Get-Help get-command -detailed ИМЯ Get-Command ОПИСАНИЕ Возвращает базовые сведения о командлетах и о других элементах команд Windows PowerShell. СИНТАКСИС Get-Command [[-argumentList] |