【发布时间】:2022-01-28 03:54:06
【问题描述】:
所以我有一个名为“Get-SomeValueFromSomewhere”的函数。我希望能够按如下方式将值导入其中:
-
'entry1','entry2' | Get-SomeValueFromSomewhere -
Get-SomeValueFromSomewhere -parameter1 'entry1','entry2'
函数如下,但我不知道如何让它支持管道。目前我收到一个错误“无法处理参数 parameter1 的参数转换。无法将值转换为 System.string 类型。'
function Get-SomeValueFromSomewhere {
[OutputType([string])]
[CmdletBinding()]
param(
[Parameter(Mandatory = $true, ValueFromPipeline = $true)]
[string[]]$parameter1,
[Parameter(Mandatory = $true, ValueFromPipeline = $false)]
[string]$parameter2
)
Process {
# do all of the processing here
}
}
非常感谢任何和所有帮助,谢谢!
【问题讨论】:
-
'entry1','entry2' | Get-SomeValueFromSomewhere或Get-SomeValueFromSomewhere -parameter1 'entry1','entry2'都不会产生您提到的错误。请向我们展示您提供给命令的确切输入。 -
所以你想将两个值都绑定到两个参数?
-
该错误可能来自将 array 作为参数传递给
string参数。 -
[1] 请在您的问题中发布 ENTIRE EXACT 错误消息...并将其包装成代码格式标记以使其易于阅读。 ///// [2] 为什么列出这么多版本的powershell?如果您需要 v2,则删除其他版本...否则,请列出您需要的实际最低版本。
-
您已将参数 2 必需 (
Mandatory = $true) 但您没有将该参数提供给函数。你发送的只是一个参数1的数组..
标签: powershell powershell-2.0 powershell-3.0 powershell-4.0