РАЗДЕЛ about_Parameters КРАТКОЕ ОПИСАНИЕ Описание работы с параметрами командлетов в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В большинстве командлетов и функций Windows PowerShell для ввода данных и настройки их работы используются параметры. Параметры указываются после имени командлета или функции и обычно имеют следующий формат: -<имя_параметра> <значение_параметра> Перед именем параметра ставится дефис (-), что позволяет оболочке Windows PowerShell отличать параметры от значений, передаваемых командлету или функции. Не все параметры требуют значений, и не все имена параметров необходимо указывать. В некоторых случаях имя параметра подразумевается, и нет необходимости указывать его в команде. Разные командлеты и функции имеют различные типы параметров и требования к ним. Чтобы получить сведения о параметрах или командлете, используйте командлет Get-Help. Например, чтобы получить сведения о параметрах командлета Get-ChildItem, введите следующую команду: get-help get-childitem Чтобы получить сведения о параметрах функции, проверьте определения параметров. Они находятся либо после имени функции, либо в теле функции после ключевого слова Param. Дополнительные сведения см. в разделе about_Functions. Некоторые функции также содержат справку о параметрах на основе комментариев. Для таких функций используйте командлет Get-Help. Дополнительные сведения см. в разделе справки о командлете Get-Help и в разделе about_Comment_Based_Help. Командлет Get-Help возвращает различные сведения о командлете или функции, включая описание, синтаксис команды, информацию о параметрах и примеры использования этого командлета или функции. Также можно получить сведения об определенном параметре командлета или функции с помощью командлета Get-Help с параметром Parameter. Если указать подстановочный знак (*) после параметра Parameter, выводятся сведения о всех параметрах этого командлета или функции. Например, следующая команда получает сведения о всех параметрах командлета или функции Get-Member: get-help get-member -parameter * Эти сведения содержат все необходимые данные по использованию параметра. Например, раздел справки по командлету Get-ChildItem содержит следующие сведения о его параметре Path: -path <string[]> Задает путь к одному или нескольким местоположениям. Подстановочные знаки разрешены. Местоположением по умолчанию является текущий каталог (.). Требуется? false Позиция? 1 Значение по умолчанию Текущий каталог Принимать входные данные с конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true Сведения о параметре включают его синтаксис, описание и атрибуты. В следующих разделах описываются все атрибуты параметров. Обязательный параметр? Этот параметр указывает, является ли параметр обязательным (т. е. требуется ли всегда указывать этот параметр при использовании соответствующего командлета). Если этот атрибут имеет значение "True" и параметр не указан в команде, Windows PowerShell запрашивает ввод значения этого параметра. Позиция параметра? Этот параметр определяет, можно ли задавать значение параметра без указания его имени. Если он имеет значение "0" или "named", указывать имя параметра обязательно. Параметры такого типа называется именованными. Именованные параметры можно указывать после имени командлета в любом порядке. Если параметр "Позиция параметра?" имеет целое ненулевое значение, указывать имя параметра не обязательно. Параметр такого типа называется позиционным, и это значение определяет его порядковый номер в списке позиционных параметров. Если указать имя позиционного параметра, этот параметр можно указать в любом месте списка параметров после имени командлета. Например, командлет Get-ChildItem имеет параметры Path и Exclude. "Позиция параметра?" для параметра Path имеет значение 1, следовательно, это позиционный параметр. "Позиция параметра?" для параметра Exclude имеет значение 0, следовательно, это именованный параметр. Это значит, что имя параметра Path указывать не обязательно, но его значение должно быть первым или единственным среди неименованных параметров, указанных в команде. Впрочем, параметр Exclude является именованным, а потому его можно указать на любой позиции списка параметров команды. Таким образом, значения "Позиция параметра?" для этих двух параметров позволяют использовать любую из следующих команд: Get-ChildItem -path c:\techdocs -exclude *.ppt Get-ChildItem c:\techdocs -exclude *.ppt Get-ChildItem -exclude *.ppt -path c:\techdocs Get-ChildItem -exclude *.ppt c:\techdocs Если требуется задать еще один позиционный параметр, не указывая его имя, его положение в списке параметров должно соответствовать его значению "Позиция параметра?". Тип параметра Этот параметр задает тип Microsoft .NET Framework для значения параметра. Например, если параметр имеет тип Int32, его значение должно быть целочисленным. Если он имеет тип string, он должен представлять собой текстовую строку. Если в строке содержатся знаки пробелов, необходимо заключать ее значение в кавычки либо ставить перед пробелами escape-символ (`). Значение по умолчанию Этот параметр задает значение по умолчанию, присваиваемое параметру, если другого значения не указано. Например, значением по умолчанию для параметра Path обычно является текущий каталог. У обязательных параметров всегда отсутствует значение по умолчанию. У многих необязательных параметров также отсутствует значение по умолчанию, поскольку такие параметры не действуют, если они не указаны. Принимает несколько значений? Этот параметр определяет, может ли параметр принимать несколько значений. Если параметр принимает несколько значений, в качестве его значения в команде можно задать список перечисленных через запятую значений или сохранить такой список (массив) в переменной и указать ее как значение параметра. Например, параметр ServiceName командлета Get-Service принимает несколько значений. Допускается использовать любую из следующих команд: get-service -servicename winrm, netlogon $s = "winrm", "netlogon" get-service -servicename $s Принимает входные данные с конвейера? Этот параметр указывает, можно ли использовать оператор конвейера (|) для передачи значения этому параметру. Значение Описание ----- ----------- False Указывает, что этому параметру нельзя передавать значение по конвейеру. True (по значению) Указывает, что параметру можно передать по конвейеру любое значение, при условии, что для него указан тип .NET Framework или это значение можно преобразовать в указанный тип .NET Framework. Если для параметра указано "True (по значению)", Windows PowerShell пытается сопоставить переданные по конвейеру значения с этим параметром, прежде чем интерпретировать команду другими способами. True (по имени свойства) Указывает, что параметру можно передать значение по конвейеру, но тип .NET Framework параметра должен включать свойство с таким же именем, как у параметра. Например, параметру Name можно передать значение по конвейеру, только если оно имеет свойство с именем "Name". Принимает подстановочные знаки? Этот параметр указывает, может ли значение параметра содержать подстановочные знаки, позволяющие сопоставлять его значение с несколькими элементами, существующими в целевом контейнере. Общие параметры Параметры, которые можно использовать с любым командлетом, называются общими. Чтобы получить дополнительные сведения об общих параметрах, введите следующую команду: help about_commonparameters CМ. ТАКЖЕ about_Command_syntax about_Comment_Based_Help about_Functions_Advanced about_Pipelines about_Wildcards