Zauważam, że przekazywanie obiektów do funkcji za pośrednictwem potoku PowerShell konwertuje je do obiektów string
. Jeśli przekazuję obiekt jako parametr, zachowuje on jego typ. Aby wykazać, że:Uzyskiwanie różnych wyników przy użyciu potoku z funkcjami
Mam następujący funkcja PowerShell, który wyświetla rodzaj i wartość danego obiektu:
function TestFunction {
param (
[Parameter(
Position=0,
Mandatory=$true,
ValueFromPipeline=$true
)] $InputObject
)
Echo $InputObject.GetType().Name
Echo $InputObject
}
wpadłem ten skrypt, aby przetestować funkcję:
[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
To daje wyjście:
String[]
Value 1
Value 2
String[]
Value 1
Value 2
String
Value 2
EDYCJA: Jak korzystać z potoku, aby przekazać całą tablicę do zabawy ction?
Piękny! To działa. Dzięki! Następnym razem będę RTFM. :-) –