Как сделать параметры обязательными в PowerShell?
Как сделать параметры обязательными в PowerShell?
Ответ 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?