Добавление параметра по умолчанию в сценарий Powershell Core - PullRequest
0 голосов
/ 06 апреля 2019

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

Параметры

param(
    [string]
    $Build = "production",

    [bool]
    $Deploy = 1
)

Так что, когда я делаю ./script.ps1 -Build, я получаю ошибку как

/Users/akshayrajgollahalli/GitHub/gollahalli.com/script.ps1 : Missing an argument for parameter 'Build'. Specify a parameter of type 'System.String' and try again.

Но, согласно блогу Microsoft , это то, что я делаю. Я не уверен, в чем здесь ошибка.

Обновление 1:

В другом случае мне может понадобиться что-то вроде ./script.ps1 -Build local, которое должно переопределить значение production.

1 Ответ

2 голосов
/ 06 апреля 2019

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

В качестве примера. Этот скрипт просто выведет то, что используется для параметров $Build и $Deploy:

param(
    [string]
    $Build = "production",

    [bool]
    $Deploy = 1
)

Write-Host "Using Build value:  $Build"
Write-Host "Using Deploy value: $Deploy"

Если я использую это так:

& 'D:\script1.ps1'

Он не получает никаких альтернативных значений для $ Build и $ Deploy, поэтому вывод будет:

Using Build value:  production
Using Deploy value: True

Всякий раз, когда вы хотите запустить скрипт со значениями, отличными от их значений по умолчанию, вы добавляете параметр (ы) и значение (я) к вызову следующим образом:

& 'D:\script1.ps1' -Build "something else"

Выход:

Using Build value:  something else
Using Deploy value: True

Надеюсь, это объясняет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...