Поделиться через


Сведения о параметрах

Краткое описание

Описывает, как работать с параметрами команд в PowerShell.

Подробное описание

Большинство команд PowerShell, таких как командлеты, функции и скрипты, используют параметры, чтобы пользователи могли выбирать параметры или предоставлять входные данные. Параметры следуют имени команды и имеют следующую форму:

-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>

Имя параметра предшествует дефису (-), который сообщает PowerShell, что слово после дефиса является именем параметра. Имя и значение параметра могут быть разделены пробелом или двоеточием. Для некоторых параметров не требуется или не принимается значение параметра. Для других параметров требуется значение, но не требуется имя параметра в команде.

Типы параметров и требования к этим параметрам различаются. Чтобы найти сведения о параметрах команды, используйте Get-Help командлет . Например, чтобы найти сведения о параметрах командлета, введите Get-ChildItem :

Get-Help Get-ChildItem

Чтобы найти сведения о параметрах скрипта, используйте полный путь к файлу скрипта. Пример:

Get-Help $home\Documents\Scripts\Get-Function.ps1

Командлет Get-Help возвращает различные сведения о команде, включая описание, синтаксис команды, сведения о параметрах и примеры использования параметров в команде.

Вы также можете использовать параметр Parameter командлета Get-Help для поиска сведений о конкретном параметре. Или можно использовать параметр Parameter со значением подстановочного знака ( * ), чтобы найти сведения обо всех параметрах команды. Например, следующая команда получает сведения обо всех параметрах командлета Get-Member :

Get-Help Get-Member -Parameter *

Значения параметров по умолчанию

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

Например, значение по умолчанию параметра ComputerName многих командлетов — это имя локального компьютера. В результате имя локального компьютера используется в команде, если не указан параметр ComputerName .

Чтобы найти значение параметра по умолчанию, см. раздел справки по командлету . Описание параметра должно содержать значение по умолчанию.

Можно также задать настраиваемое значение по умолчанию для любого параметра командлета или расширенной функции. Сведения о настройке пользовательских значений по умолчанию см . в разделе about_Parameters_Default_Values.

Таблица атрибутов параметров

При использовании параметров Full, Parameter или Online командлета Get-Help отображает таблицу атрибутов Get-Help параметров с подробными сведениями о параметре.

Эти сведения включают сведения, которые необходимо знать, чтобы использовать параметр . Например, раздел справки для командлета Get-ChildItem содержит следующие сведения о его параметре Path:

-path <string[]>
    Specifies a path of one or more locations. Wildcard characters are
    permitted. The default location is the current directory (.).

Required?                    false
Position?                    0
Default value                Current directory
Accept pipeline input?       true (ByValue, ByPropertyName)
Accept wildcard characters?  true

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

Обязательный параметр

Этот параметр указывает, является ли параметр обязательным, то есть должны ли все команды, использующие этот командлет, включать этот параметр. Если значение равно True и параметр отсутствует в команде, PowerShell запрашивает значение параметра.

Положение параметра

Если для Position параметра задано положительное целое число, имя параметра не требуется. Этот тип параметра называется позициональным параметром, а число указывает позицию, в которой параметр должен отображаться относительно других позиционных параметров. Именованный параметр может быть указан в любой позиции после имени командлета. Если включить имя параметра для позиционного параметра, параметр может быть указан в любой позиции после имени командлета.

Например, Get-ChildItem командлет имеет параметры Path и Exclude. Параметр PositionPath имеет значение 0, что означает, что это позиционный параметр. Параметр PositionExclude имеет имя.

Это означает, что path не требует имени параметра, но его значение параметра должно быть первым или единственным значением неименованного параметра в команде. Однако поскольку параметр Exclude является именованным параметром, его можно поместить в любую позицию в команде.

В результате Position настройки этих двух параметров можно использовать любую из следующих команд:

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

Если необходимо включить другой позиционный параметр без указания имени параметра, этот параметр должен быть помещен в порядке, указанном параметром Position .

Тип параметра

Этот параметр задает тип значения параметра платформа .NET Framework Майкрософт. Например, если тип — Int32, значение параметра должно быть целым числом. Если тип — string, значение параметра должно быть символьной строкой. Если строка содержит пробелы, значение должно быть заключено в кавычки, иначе пробелам должен предшествовать escape-символ ( ' ).

Значение по умолчанию

Этот параметр задает значение, которое будет приниматься параметром, если не указано другое значение. Например, значением по умолчанию параметра Path часто является текущий каталог. Обязательные параметры никогда не имеют значения по умолчанию. Для многих необязательных параметров нет значения по умолчанию, так как параметр не действует, если он не используется.

Принимает несколько значений

Этот параметр указывает, принимает ли параметр несколько значений параметров. Если параметр принимает несколько значений, можно ввести разделенный запятыми список в качестве значения параметра в команде или сохранить разделенный запятыми список (массив) в переменной, а затем указать переменную в качестве значения параметра.

Например, параметр ServiceName командлета Get-Service принимает несколько значений. Допустимы следующие команды:

Get-Service -servicename winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -servicename $s

Принимает входные данные конвейера

Этот параметр указывает, можно ли использовать оператор конвейера ( | ) для отправки значения в параметр .

Value                    Description
-----                    -----------
False                    Indicates that you cannot pipe a value to the
                         parameter.

True (by Value)          Indicates that you can pipe any value to the
                         parameter, just so the value has the .NET
                         Framework type specified for the parameter or the
                         value can be converted to the specified .NET
                         Framework type.

Если параметр имеет значение True (по значению), PowerShell пытается связать с этим параметром любые значения, полученные по конвейеру, прежде чем пытаться интерпретировать команду другими методами.

True (by Property Name)  Indicates that you can pipe a value to the
                         parameter, but the .NET Framework type of the
                         parameter must include a property with the same
                         name as the parameter.

Например, значение можно передать в параметр Name только в том случае, если значение имеет свойство Name.

Примечание

Типизированный параметр, который принимает входные данные конвейера (by Value) или (by PropertyName), позволяет использовать в параметре блоки скриптов с задержкой привязки .

Блок скрипта delay-bind запускается автоматически во время ParameterBinding. Результат привязан к параметру . Привязка задержки не работает для параметров, определенных как тип ScriptBlock или System.Object, блок скрипта передается без вызова.

О блоках скриптов с задержкой привязки можно прочитать здесь about_Script_Blocks.md

Принимает подстановочные знаки

Этот параметр указывает, может ли значение параметра содержать подстановочные знаки, чтобы значение параметра можно было сопоставить с несколькими существующими элементами в целевом контейнере.

Общие параметры

Общие параметры — это параметры, которые можно использовать с любым командлетом. Дополнительные сведения об общих параметрах см. в разделе about_CommonParameters.

См. также раздел

about_Command_syntax

about_Comment_Based_Help

about_Functions_Advanced

about_Parameters_Default_Values

about_Pipelines

about_Wildcards