powershell - 将默认参数添加到 Powershell Core 脚本
问题描述
我对 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.
但根据微软博客,这就是我正在做的事情。我不确定这里有什么错误。
更新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
希望这能解释
推荐阅读
- python - 是否可以对类定义中的字符串标志进行按位运算?
- ajax - Shopify:结帐 ajax 验证?
- ansible - Ansible 清单可以包含另一个清单吗?
- html - 图标弹出框(Angular 4+)
- cesium - 将纬度/经度点转换为屏幕Cesium上的x,y点
- python - 计算熊猫数据框中的重复元素
- java - 在 .jar 中包含 excel
- python - 无法从使用 json 的 URL api 获取信息?
- php - 从数组中选择距离值最小的数组
- odoo - 从 odoo pos 中的 api rpc(xml 或 json)获取屏幕上的当前 pos 订单