Зачастую можно повысить пользу от сценариев, заставив их брать направление из командной строки, а не из жесткой привязки к чему-нибудь вроде имен файлов и тех мест, где они находятся. Аргументы командной строки, указанные при запуске сценария PowerShell, доступны в массиве $аngs [ ]. Например, если у вас в пути поиска есть сценарий по имени myscript. psl, командная строка PowerShell myscnipt abc запустит ваш сценарий, и в массиве angs [ ] будут находиться три значения: ‘ а’, ‘ b’ и ‘ с’. Если ваш сценарий обрабатывает файл, его можно сделать более универсальным, заключив «рабочую» часть в функцию и вызывая функцию, по одному разу для каждого аргумента командной строки:
Сценарий обрабатывает каждый файл, названный в командной строке; если не названо ни одного файла, он выводит сообщение, показывающее порядок использования сценария. В PowerShell можно без особого труда создавать сценарии, допускающие более сложный синтаксис командной строки. Непосредственно работать с элементами аргументов вам не придется. Оператор panam, конечно, усложняется, но PowerShell берет всю тяжелую работу на себя. Информацию об использовании оператора panam для определения ключей командной строки можно найти в соответствующем разделе Вы можете написать свои собственные функции PowerShell, работающие наподобие встроенных командлетов. Для этого нужно поместить функцию в файл модуля, который будет загружаться при каждом запуске PowerShell, и выполнить следующие действия: Определить командлет как функцию PowerShell, используя операторы BEGIN, PROCESS и END. Этот вопрос рассматривался в главе 15, в разделе «Функции, работающие с каналами, и фильтры».
Для подробного описания в данной книге нет места, но дополнительную информацию можно найти в справочнике по PowerShell, в теме about_functions_ advanced.