将默认参数添加到 Powershell Core 脚本
Adding default parameter to Powershell Core script
我对 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 blog 这就是我正在做的事情。我不确定这里有什么错误。
更新 1:
另一种情况是我可能想要像 ./script.ps1 -Build local
这样的东西,它应该覆盖 production
值。
使用默认值定义可选参数时,您可以在调用中省略参数以使脚本使用此默认值,或使用它让脚本使用其他值而不是默认值。
举个例子。该脚本将简单地输出用于 $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
希望这能解释
我对 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 blog 这就是我正在做的事情。我不确定这里有什么错误。
更新 1:
另一种情况是我可能想要像 ./script.ps1 -Build local
这样的东西,它应该覆盖 production
值。
使用默认值定义可选参数时,您可以在调用中省略参数以使脚本使用此默认值,或使用它让脚本使用其他值而不是默认值。
举个例子。该脚本将简单地输出用于 $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
希望这能解释