在 Powershell 中处理字符串参数的布尔值

Posted

技术标签:

【中文标题】在 Powershell 中处理字符串参数的布尔值【英文标题】:Handling boolean values for String parameters in Powershell 【发布时间】:2016-10-29 02:55:59 【问题描述】:

使用 Powershell 我想如下调用我的脚本:

myscript.ps1 -device1 enable -device2 disable -device3 enable

每个device 参数定义为String 后跟bool 值。

param(
  [string] $device1,
  [string] $device2,
  [string] $device3
)

PowerShell 是否通过一些预定义的函数或参数支持这一点,或者您会以完全不同的方式实现它吗?我想避免解析 enabledisable

【问题讨论】:

【参考方案1】:

我会使用switch

param(
  [switch] $device1,
  [switch] $device2,
  [switch] $device3
)

因此您可以使用以下方式调用您的脚本:

myscript.ps1 -device1 -device3

【讨论】:

这意味着例如device2 调用脚本时如果不设置会设置为false 完全正确。如果您愿意,您也可以使用 -device2:$false 指定它,但您不必这样做。 查看technet.microsoft.com/en-us/magazine/jj554301.aspx 和ss64.com/ps/syntax-args.html 了解更多信息

以上是关于在 Powershell 中处理字符串参数的布尔值的主要内容,如果未能解决你的问题,请参考以下文章

在 Alamofire 参数中快速发送布尔值

将参数从批处理文件传递到 PowerShell 脚本

将参数从批处理文件传递到 PowerShell 脚本

在Jackson中处理布尔值和字符串吗?

调用存储过程、传递 NULL 值、处理布尔值

如何从 TeamCity 构建配置中设置 PowerShell 开关参数