gpt4 book ai didi

powershell - 将一组未指定的参数传递给函数并通过 cmdlet

转载 作者:行者123 更新时间:2023-12-03 12:19:04 25 4
gpt4 key购买 nike

假设我想编写一个包装 Read-Host 的辅助函数。 .此函数将通过更改提示颜色、调用 Read-Host,然后将颜色改回来增强 Read-Host(用于说明目的的简单示例 - 实际上并未尝试解决此问题)。

由于这是 Read-Host 的包装,我不想在函数头中重复 Read-Host 的所有参数(即 Prompt 和 AsSecureString)。有没有办法让函数获取一组未指定的参数,然后将这些参数直接传递到函数内的 cmdlet 调用中?我不确定Powershell是否有这样的设施。

例如...

function MyFunc( [string] $MyFuncParam1, [int] $MyFuncParam2 , Some Thing Here For Cmdlet Params that I want to pass to Cmdlet )
{
# ...Do some work...
Read-Host Passthru Parameters Here
# ...Do some work...

}

最佳答案

一个字:喷。

再多说几句:你可以使用 $PSBoundParameters 的组合并将参数从外部命令传递到内部命令(假设名称匹配)。您需要从 $PSBoundParameters 中删除您不想使用的任何参数。第一的:

$PSBoundParameters.Remove('MyFuncParam1')
$PSBoundParameters.Remove('MyFuncParam2')
Read-Host @PSBoundParameters

编辑

示例函数体:
function Read-Data {
param (
[string]$First,
[string]$Second,
[string]$Prompt,
[switch]$AsSecureString
)

$PSBoundParameters.Remove('First') | Out-Null
$PSBoundParameters.Remove('Second') | Out-Null
$Result = Read-Host @PSBoundParameters
"First: $First Second: $Second Result: $Result"
}

Read-Data -First Test -Prompt This-is-my-prompt-for-read-host

关于powershell - 将一组未指定的参数传递给函数并通过 cmdlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com