我發現通過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