Подтвердить что ты не робот

Как сделать параметры обязательными в PowerShell?

Как сделать параметры обязательными в PowerShell?

4b9b3361

Ответ 1

Вы указываете его в атрибуте выше каждого параметра, например:

function Do-Something{
    [CmdletBinding()]
    param(
        [Parameter(Position=0,mandatory=$true)]
        [string] $aMandatoryParam,
        [Parameter(Position=1,mandatory=$true)]
        [string] $anotherMandatoryParam)

    process{
       ...
    }
}

Ответ 2

Чтобы сделать параметр обязательным, добавьте "Mandatory = $ true" в описание параметра. Чтобы сделать параметр необязательным, просто не указывайте "Обязательный".

Этот код работает как для скрипта, так и для параметров функции:

[CmdletBinding()]
param(
  [Parameter(Mandatory=$true)]
  [String]$aMandatoryParameter,

  [String]$nonMandatoryParameter,

  [Parameter(Mandatory=$true)]
  [String]$anotherMandatoryParameter

)

Убедитесь, что оператор "param" является первым (за исключением комментариев и пустых строк) в скрипте или функции.

Вы можете использовать командлет "Get-Help" для проверки правильности определения параметров:

PS C:\> get-help Script.ps1 -full
[...]
PARAMETERS
    -aMandatoryParameter <String>

        Required?                    true
        Position?                    1
        Default value
        Accept pipeline input?       false
        Accept wildcard characters?

    -NonMandatoryParameter <String>

        Required?                    false
        Position?                    2
        Default value
        Accept pipeline input?       false
        Accept wildcard characters?

    -anotherMandatoryParameter <String>

        Required?                    true
        Position?                    3
        Default value
        Accept pipeline input?       false
        Accept wildcard characters?