【问题标题】:How do I pass all parameters between cmdlets easily?如何轻松地在 cmdlet 之间传递所有参数?
【发布时间】:2019-04-03 00:04:06
【问题描述】:

使用 CmdletBinding,是否有一种简单的方法可以重复调用 cmdlet 时使用的确切参数,以便我可以使用完全相同的参数调用另一个 cmdlet?

我正在 Powershell 中编写 Powershell Cmdlet。我正在使用高级功能。我有一个名为 Get-Environment 的 cmdlet,带有几个可选参数,例如 [string]EnvironmentName 和 [switch]Active。我有另一个 cmdlet,称为 Get-Machine,具有所有相同的可选参数;它调用Get-Environment。最初,在我添加 [switch]Active 参数之前,我只是显式调用了所有变量的 Get-Environment(见下文)。

我现在不能做同样的事情,因为如果我添加“活动”,那么它将被设置。我不想在 Get-Machine 中进行测试以查看 Active 是否为真并且有两个不同版本的 Get-Environment 调用。我宁愿不必遍历 $PSBoundParameters 哈希表并重建原始字符串,但这看起来是唯一可行的前进方式(除非我遗漏了什么。)

get-machine里面的原始代码:

$environments = get-Environment -EnvironmentName $EnvironmentName

【问题讨论】:

    标签: powershell parameters


    【解决方案1】:

    哦,看在皮特的份上。我找到了。我错过了愚蠢的大事。我会把这个留给其他人,以防有人有更好的答案。

    https://ss64.com/ps/psboundparameters.html

    $PSBoundParameters 可用于调用传递相同参数的从属函数或 cmdlet - PowerShell 将自动显示哈希表的值,而不必键入每个参数: 获取其他东西@PSBoundParameters

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 2012-05-24
      • 2011-01-08
      • 2011-11-15
      • 2011-05-01
      相关资源
      最近更新 更多