我发现通过PowerShell管道将函数传递给函数会将它们转换为string
对象。如果我将该对象作为参数传递,它将保持其类型。为了证明:使用具有函数的管道获取不同的结果
我已经其显示对象的类型和值以下PowerShell的函数:
function TestFunction {
param (
[Parameter(
Position=0,
Mandatory=$true,
ValueFromPipeline=$true
)] $InputObject
)
Echo $InputObject.GetType().Name
Echo $InputObject
}
我跑这个脚本来测试功能:
[string[]] $Array = "Value 1", "Value 2"
# Result outside of function.
Echo $Array.GetType().Name
Echo $Array
Echo ""
# Calling function with parameter.
TestFunction $Array
Echo ""
# Calling function with pipeline.
$Array | TestFunction
这将产生输出:
String[]
Value 1
Value 2
String[]
Value 1
Value 2
String
Value 2
编辑:我如何使用管道将整个数组传递给一个有趣的ction?
美丽!这是它的工作。谢谢!下一次,我会RTFM。 :-) – 2012-03-01 05:31:11