Aks*_*hay 0 powershell powershell-core
我对 Powershell 非常陌生,我正在尝试为脚本文件中的两个参数添加默认值,但在执行时仍然要求我输入缺少的参数。
参数是
param(
[string]
$Build = "production",
[bool]
$Deploy = 1
)
Run Code Online (Sandbox Code Playgroud)
所以当我这样做时,./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.
Run Code Online (Sandbox Code Playgroud)
但根据微软博客,这就是我正在做的。我不确定这里有什么错误。
更新 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"
Run Code Online (Sandbox Code Playgroud)
如果我像这样使用它:
& 'D:\script1.ps1'
Run Code Online (Sandbox Code Playgroud)
它不会收到 $Build 和 $Deploy 的任何替代值,因此输出将是:
Run Code Online (Sandbox Code Playgroud)Using Build value: production Using Deploy value: True
每当您想使用默认值以外的值运行脚本时,您可以将参数和值添加到调用中,如下所示:
& 'D:\script1.ps1' -Build "something else"
Run Code Online (Sandbox Code Playgroud)
输出:
Run Code Online (Sandbox Code Playgroud)Using Build value: something else Using Deploy value: True
希望这能解释
| 归档时间: |
|
| 查看次数: |
1399 次 |
| 最近记录: |