Wie man mehrere Elemente aus einer PowerShell-Funktion zurückgibt
- Verwenden Sie ein Array, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben
-
Verwenden Sie
[PSCustomObject]
, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben - Verwenden Sie Hash-Tabellen, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben
- Verwenden Sie benutzerdefinierte Objekte, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben
- Fazit

Beim Arbeiten mit PowerShell-Funktionen entsteht häufig die Notwendigkeit, mehrere Werte effizient zurückzugeben. Ein effektiver Ansatz besteht darin, Arrays, [PSCustomObject]
, Hash-Tabellen oder benutzerdefinierte Objekte zu verwenden, um diese Werte zu kapseln und darzustellen.
In diesem Artikel werden wir untersuchen, wie die genannten Methoden verwendet werden können, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben. Wir werden schrittweise Verfahren für jede Methode skizzieren und Codebeispiele bereitstellen, um deren Implementierung zu veranschaulichen und deren Ausgaben zu zeigen.
Verwenden Sie ein Array, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben
Um mehrere Werte aus einer PowerShell-Funktion mithilfe eines Arrays zurückzugeben, befolgen Sie diese Schritte:
-
Deklarieren Sie eine Array-Variable: Beginnen Sie mit der Deklaration einer Array-Variablen innerhalb der Funktion, um die mehreren Werte zu speichern, die Sie zurückgeben möchten.
-
Fügen Sie das Array hinzu: Füllen Sie das Array mit den gewünschten Werten, die Sie zurückgeben möchten. Sie können Elemente zum Array mithilfe von Indizes hinzufügen.
-
Geben Sie das Array zurück: Geben Sie das gefüllte Array als Ausgabe der Funktion zurück.
Lassen Sie uns eine einfache PowerShell-Funktion erstellen, die mehrere Werte mithilfe eines Arrays zurückgibt.
function Get-MultipleValues {
$values = @()
$values += "Value1"
$values += "Value2"
$values += "Value3"
return $values
}
$resultArray = Get-MultipleValues
Write-Output "Values returned from the function:"
foreach ($value in $resultArray) {
Write-Output $value
}
Ausgabe:
Values returned from the function:
Value1
Value2
Value3
In diesem Beispiel haben wir eine Funktion namens Get-MultipleValues
. Innerhalb der Funktion deklarieren wir eine Array-Variable $values
.
Wir fügen dann diesem Array drei Werte hinzu: "Value1"
, "Value2"
und "Value3"
. Schließlich geben wir das gefüllte Array als Ausgabe der Funktion zurück.
Beim Aufrufen der Funktion speichern wir das Ergebnis in einer Variablen ($resultArray
) und zeigen die Werte innerhalb des Arrays mithilfe einer Schleife an.
Verwenden Sie [PSCustomObject]
, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben
Sie können auch [PSCustomObject]
verwenden, um benutzerdefinierte Objekte in PowerShell zu erstellen. Es ermöglicht Ihnen, Eigenschaften und Werte für ein Objekt zu definieren, was es zu einer geeigneten Wahl macht, um mehrere Werte aus einer Funktion zurückzugeben.
Um ein benutzerdefiniertes Objekt mit [PSCustomObject]
zu erstellen, definieren Sie einfach die Eigenschaften und deren entsprechende Werte wie folgt:
$customObject = [PSCustomObject]@{
Property1 = 'Value1'
Property2 = 'Value2'
...
}
Um mehrere Werte mit [PSCustomObject]
in einer PowerShell-Funktion zurückzugeben, beginnen Sie mit der Definition der PowerShell-Funktion und der Erstellung einer Instanz von [PSCustomObject]
. Definieren Sie die Eigenschaften und Werte, die Sie innerhalb des benutzerdefinierten Objekts zurückgeben möchten.
function Get-MultipleValues {
[CmdletBinding()]
param (
[string]$Value1,
[int]$Value2,
[string]$Value3
)
$resultObject = [PSCustomObject]@{
Name = $Value1
Age = $Value2
Address = $Value3
}
return $resultObject
}
Jetzt können Sie die Funktion aufrufen und das benutzerdefinierte Objekt mit mehreren Werten abrufen.
$result = Get-MultipleValues -Value1 'Rohan' -Value2 21 -Value3 'UK'
Write-Output "Values returned from the function:"
foreach ($value in $result) {
Write-Output $value
}
Ausgabe:
Values returned from the function:
Name Age Address
---- --- -------
Rohan 21 UK
Wie wir sehen können, führt der oben stehende PowerShell-Code eine Funktion namens Get-MultipleValues
ein. Diese Funktion, die mit [CmdletBinding()]
gekennzeichnet ist, zeigt ihre Fähigkeit an, gängige Cmdlet-Parameter zu nutzen.
Innerhalb der Funktion werden drei Parameter definiert: $Value1
(ein String), $Value2
(eine Ganzzahl) und $Value3
(ein String). Die Funktion erstellt ein benutzerdefiniertes Objekt namens $resultObject
mit diesen Parametern und weist sie den Eigenschaften Name
, Age
und Address
innerhalb des benutzerdefinierten Objekts zu.
Die Anweisung return $resultObject
stellt sicher, dass dieses benutzerdefinierte Objekt als Ausgabe der Get-MultipleValues
-Funktion zurückgegeben wird.
Danach ruft das Skript die Funktion Get-MultipleValues
auf und gibt Werte für jeden Parameter an: $Value1
wird auf 'Rohan'
, $Value2
auf 21
und $Value3
auf 'UK'
gesetzt. Das resultierende benutzerdefinierte Objekt, das die übergebenen Parameterwerte enthält, wird in der Variablen $result
gespeichert.
Anschließend verwendet das Skript Write-Output
, um eine Nachricht in der Konsole anzuzeigen, und initiieren eine Schleife, die durch die Eigenschaften des benutzerdefinierten Objekts, das in $result
gespeichert ist, iteriert. Für jede Eigenschaft zeigt das Skript sowohl den Eigenschaftsnamen als auch den entsprechenden Wert in der Konsole an.
Verwenden Sie Hash-Tabellen, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben
Eine Hash-Tabelle in PowerShell ist eine ungeordnete Sammlung von Schlüssel-Wert-Paaren. Jeder Schlüssel muss einzigartig sein, und der zugehörige Wert kann jeden Datentyp annehmen.
Sie wird auch als Wörterbuch oder assoziatives Array bezeichnet. Hash-Tabellen sind besonders nützlich, wenn Sie Daten basierend auf bestimmten Schlüsseln speichern und abrufen müssen, und bieten eine strukturierte Möglichkeit, Informationen zu organisieren.
Um mehrere Werte aus einer PowerShell-Funktion mithilfe von Hash-Tabellen zurückzugeben, befolgen Sie diese Schritte:
-
Erstellen Sie eine Hash-Tabelle: Instanziieren Sie eine Hash-Tabelle innerhalb der Funktion, um die Schlüssel-Wert-Paare zu speichern, die die Daten repräsentieren, die Sie zurückgeben möchten.
Du kannst eine Hash-Tabelle in PowerShell mit
@{}
erstellen. Die Schlüssel und Werte werden in den{}
-Klammern platziert.Die Syntax zum Erstellen einer Hash-Tabelle ist wie folgt.
@{ <key> = <value>; [<key> = <value> ] ... }
-
Fügen Sie Schlüssel-Wert-Paare hinzu: Fügen Sie die Schlüssel-Wert-Paare zur Hash-Tabelle hinzu und verknüpfen Sie jeden Wert mit einem einzigartigen Schlüssel.
-
Geben Sie die Hash-Tabelle zurück: Geben Sie die gefüllte Hash-Tabelle als Ausgabe der Funktion zurück.
Lassen Sie uns ein Beispiel betrachten, das die Hash-Tabelle verwendet, um mehrere Werte aus einer Funktion namens user
zurückzugeben.
Code:
function user() {
$hash = @{ Name = 'Rohan'; Age = 21; Address = 'UK' }
return $hash
}
$a = user
Write-Host "$($a.Name) is $($a.Age) and lives in $($a.Address)."
Ausgabe:
Rohan is 21 and lives in UK.
Wie wir sehen können, definiert dieser Code eine Funktion namens user()
, die das Schlüsselwort function
verwendet. Innerhalb dieser Funktion wird eine Hash-Tabelle namens $hash
mit der @{}
-Syntax erstellt, die drei Schlüssel-Wert-Paare enthält: Name
mit dem Wert 'Rohan'
, Age
mit dem Wert 21
und Address
mit dem Wert 'UK'
.
Die Anweisung return $hash
stellt sicher, dass diese Hash-Tabelle die Ausgabe der user()
-Funktion ist.
Anschließend ruft das Skript die Funktion user()
auf und weist der resultierenden Hash-Tabelle der Variablen $a
zu. Das bedeutet, dass $a
nun die Hash-Tabelle enthält, die von der user()
-Funktion zurückgegeben wurde.
Schließlich wird das Cmdlet Write-Host
verwendet, um eine Nachricht in der Konsole anzuzeigen. Die Nachricht enthält die Werte aus der Hash-Tabelle, die in $a
gespeichert sind, die durch $($a.Name)
, $($a.Age)
und $($a.Address)
abgerufen werden, um die Werte Name
, Age
und Address
zuzugreifen.
Nun erstellen wir eine weitere PowerShell-Funktion, die die Summe und das Produkt von zwei Zahlen berechnet und die Ergebnisse mithilfe einer Hash-Tabelle zurückgibt.
function Calculate-SumAndProduct {
param(
[int]$num1,
[int]$num2
)
$resultHashTable = @{
Sum = $num1 + $num2
Product = $num1 * $num2
}
return $resultHashTable
}
$inputNum1 = 5
$inputNum2 = 7
$result = Calculate-SumAndProduct -num1 $inputNum1 -num2 $inputNum2
Write-Output "Sum: $($result['Sum'])"
Write-Output "Product: $($result['Product'])"
Ausgabe:
Sum: 12
Product: 35
Dieser Code beginnt mit der Definition einer Funktion namens Calculate-SumAndProduct
, die zwei int
-Parameter, $num1
und $num2
, akzeptiert. Innerhalb der Funktion wird eine Hash-Tabelle namens $resultHashTable
mit der @{}
-Syntax erstellt.
Diese Hash-Tabelle enthält zwei Schlüssel-Wert-Paare: Sum
mit einem Wert gleich der Summe von $num1
und $num2
sowie Product
mit einem Wert gleich dem Produkt von $num1
und $num2
. Die Funktion gibt dann diese Hash-Tabelle zurück, wodurch sie die Ausgabe der Funktion Calculate-SumAndProduct
wird.
Im Verlauf des Skripts werden zwei Eingabezahlen definiert: $inputNum1
mit dem Wert 5
und $inputNum2
mit dem Wert 7
. Die Funktion Calculate-SumAndProduct
wird mit diesen Eingabezahlen aufgerufen, und die resultierende Hash-Tabelle wird in einer Variablen namens $result
gespeichert.
Schließlich verwendet das Skript das Cmdlet Write-Output
, um die Werte von Summe und Produkt anzuzeigen, indem auf die entsprechenden Werte in der Hash-Tabelle zugegriffen wird, die in $result
gespeichert ist.
Verwenden Sie benutzerdefinierte Objekte, um mehrere Elemente aus einer PowerShell-Funktion zurückzugeben
Ein benutzerdefiniertes Objekt in PowerShell ist eine Instanz der Klasse System.Management.Automation.PSCustomObject
. Es ermöglicht Ihnen, Eigenschaften und Werte zu definieren, die diesen Eigenschaften zugeordnet sind, und ahmt ein reales Objekt nach.
Benutzerdefinierte Objekte sind flexibel und ermöglichen die Organisation und den Abruf von Daten in strukturierter Form.
Um mehrere Werte aus einer PowerShell-Funktion mithilfe von benutzerdefinierten Objekten zurückzugeben, befolgen Sie diese Schritte:
-
Definieren Sie ein benutzerdefiniertes Objekt: Erstellen Sie ein benutzerdefiniertes Objekt innerhalb der Funktion und definieren Sie Eigenschaften für die Werte, die Sie zurückgeben möchten.
-
Weisen Sie Eigenschaftswerte zu: Weisen Sie die Werte, die Sie zurückgeben möchten, den Eigenschaften des benutzerdefinierten Objekts zu.
-
Geben Sie das benutzerdefinierte Objekt zurück: Geben Sie das gefüllte benutzerdefinierte Objekt als Ausgabe der Funktion zurück.
Lassen Sie uns eine PowerShell-Funktion erstellen, die die Summe und das Produkt von zwei Zahlen berechnet und die Ergebnisse mithilfe eines benutzerdefinierten Objekts zurückgibt.
function Calculate-SumAndProduct {
param(
[int]$num1,
[int]$num2
)
$resultObject = New-Object PSObject
$resultObject | Add-Member -MemberType NoteProperty -Name "Sum" -Value ($num1 + $num2)
$resultObject | Add-Member -MemberType NoteProperty -Name "Product" -Value ($num1 * $num2)
return $resultObject
}
$inputNum1 = 5
$inputNum2 = 7
$result = Calculate-SumAndProduct -num1 $inputNum1 -num2 $inputNum2
Write-Output "Sum: $($result.Sum)"
Write-Output "Product: $($result.Product)"
Ausgabe:
Sum: 12
Product: 35
In diesem Beispiel haben wir eine Funktion namens Calculate-SumAndProduct
definiert, die zwei Eingabezahlen ($num1
und $num2
) akzeptiert. Innerhalb der Funktion haben wir ein benutzerdefiniertes Objekt namens $resultObject
erstellt und Eigenschaften (Sum
und Product
) hinzugefügt, wobei wir die entsprechenden berechneten Werte zugewiesen haben.
Beim Aufrufen der Funktion mit Eingabezahlen (5
und 7
) speichern wir das Ergebnis in einer Variablen ($result
). Wir zeigen dann die Summe und das Produkt an, indem wir auf die Eigenschaften des resultierenden benutzerdefinierten Objekts zugreifen.
Fazit
In diesem Artikel wurden verschiedene Techniken untersucht, um mehrere Werte aus einer Funktion zurückzugeben, einschließlich der Verwendung von Arrays, [PSCustomObject]
, Hash-Tabellen und benutzerdefinierten Objekten. Jede Methode bietet ihre Vorteile und kann basierend auf den spezifischen Anforderungen Ihres Skripts ausgewählt werden.
Arrays bieten eine einfache Möglichkeit, mehrere Werte zurückzugeben, insbesondere wenn die Datenelemente einen ähnlichen Typ oder eine ähnliche Struktur aufweisen. [PSCustomObject]
ermöglicht es Ihnen, benutzerdefinierte Objekte mit benannten Eigenschaften zu erstellen, die einen strukturierten Ansatz für die Rückgabe von Daten bieten.
Hash-Tabellen sind in Szenarien von Vorteil, in denen der Datenabruf auf bestimmten Schlüsseln basiert und eine organisierte und effiziente Lösung bieten. Benutzerdefinierte Objekte, die mit der Klasse [System.Management.Automation.PSCustomObject]
erstellt wurden, bieten Flexibilität und ahmen reale Objekte nach.