Обязательный флаг с сообщением командной строки args - PullRequest
0 голосов
/ 26 апреля 2018

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

Например

Param(
[Parameter(Mandatory=$True,HelpMessage="User Name must be specified.")]
[string]$userName
)

Теперь, если я запускаю свой скрипт из командной строки, он все равно печатает это уродливое красное сообщение внизу:

Отсутствует аргумент для параметра 'userName'. Укажите параметр типа «System.String» и повторите попытку.

Как мне заставить его напечатать HelpMessage? Или еще лучше, вызовите мой собственный метод с отсутствующим параметром.

1 Ответ

0 голосов
/ 26 апреля 2018

Метод, который я использовал для этого, состоит в том, чтобы не сделать параметр [Parameter(Mandatory=$true)], а вместо этого установить значение по умолчанию, которое фактически является процедурой, вызываемой, если параметр пропущен:

param (
    $foo = (Read-Host "You must supply a foo! Enter foo value:")
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...