Bietet eine Einführung in erweiterte Funktionen, die sich ähnlich (about_functions_advanced)
# THEMA
about_Functions_Advanced
# KURZBESCHREIBUNG
Bietet eine Einführung in erweiterte Funktionen, die sich ähnlich
wie Cmdlets verhalten.
# DETAILBESCHREIBUNG
Mit erweiterten Funktionen können Sie Funktionen für Vorgänge
erstellen, die den Vorgängen bei der Ausführung von Cmdlets ähneln.
Erweiterte Funktionen sind nützlich, wenn Sie eine Funktion schnell
und ohne Erstellen eines kompilierten Cmdlet in einer Microsoft .NET
Framework-Programmiersprache erstellen möchten. Diese Funktionen sind
auch nützlich, wenn Sie die Funktionalität eines kompilierten Cmdlet
einschränken oder eine Funktion erstellen möchten, die einem
kompilierten Cmdlet ähnelt.
Zwischen dem Erstellen eines kompilierten Cmdlet und dem
Erstellen einer erweiterten Funktion besteht ein Unterschied.
Kompilierte Cmdlets sind .NET Framework-Klassen, die in einer
.NET Framework-Programmiersprache geschrieben werden müssen, z. B. C#.
Im Gegensatz dazu werden erweiterte Funktionen in der
Windows PowerShell-Skriptsprache so wie auch andere Funktionen
oder Skriptblöcke geschrieben.
Erweiterte Funktionen werden mit dem CmdletBinding-Attribut als
Funktionen bezeichnet, die sich ähnlich wie Cmdlets verhalten. Das
CmdletBinding-Attribut ähnelt dem Cmdlet-Attribut, mit dem in
kompilierten Cmdlet-Klassen die Klasse als Cmdlet bezeichnet wird.
Weitere Informationen über diesem Attribut finden Sie unter
"about_Functions_CmdletBindingAttribute".
Im folgenden Beispiel wird eine Funktion veranschaulicht, die
einen Namen akzeptiert und dann einen Gruß mit dem angegebenen
Namen ausgibt. Mit dieser Funktion wird ein Name definiert, der
ein Paar aus Verb ("Send") und Substantiv ("Greeting") enthält,
ähnlich wie das Verb-Substantiv-Paar eines kompilierten Cmdlets.
Funktionen müssen jedoch kein Verb-Substantiv-Namen aufweisen.
function Send-Greeting
{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[string] $Name
)
Process
{
write-host ("Hallo " + $Name + "!")
}
}
Die Parameter der Funktion werden mit dem Parameter-Attribut
deklariert. Dieses Attribut kann allein verwendet werden, es kann
jedoch auch mit dem Alias-Attribut oder verschiedenen anderen
Parametervalidierungsattributen kombiniert werden.
Weitere Informationen zum Deklarieren von Parametern (u. a.
dynamischen, zur Laufzeit hinzugefügten Parametern) finden Sie unter
about_Functions_Advanced_Parameters.
Die tatsächliche Aktion der obigen Funktion wird im Process-Block
ausgeführt, der der ProcessingRecord-Methode entspricht, mit der
kompilierte Cmdlets die an dieses übergebenen Daten verarbeiten.
Dieser Block wird zusammen mit dem Begin-Block und dem End-Block
im Thema "about_Functions_Advanced_Methods" beschrieben.
Erweiterte Funktionen unterscheiden sich auf die folgende Weise
in kompilierten Cmdlets:
- Wenn ein Zeichenfolgenarray an einen booleschen Parameter
gebunden wird, tritt bei Bindung erweiterter Funktionsparame
ter keine Ausnahme auf.
- Vom ValidateSet-Attribut und vom ValidatePattern-Attribut
können keine benannten Parameter übergeben werden.
- Erweiterte Funktionen können nicht in Transaktionen
verwendet werden.
SIEHE AUCH
about_Functions_Advanced_CmdletBindingAttribute
about_Functions_Advanced_Methods
about_Functions_Advanced_Parameters
Windows PowerShell-Cmdlets (http://go.microsoft.com/fwlink/?LinkID=135279,
möglicherweise auf Englisch)
C:\Windows>powershell get-help about_functions_advanced_methods -full
ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.
about_Functions_Advanced
# KURZBESCHREIBUNG
Bietet eine Einführung in erweiterte Funktionen, die sich ähnlich
wie Cmdlets verhalten.
# DETAILBESCHREIBUNG
Mit erweiterten Funktionen können Sie Funktionen für Vorgänge
erstellen, die den Vorgängen bei der Ausführung von Cmdlets ähneln.
Erweiterte Funktionen sind nützlich, wenn Sie eine Funktion schnell
und ohne Erstellen eines kompilierten Cmdlet in einer Microsoft .NET
Framework-Programmiersprache erstellen möchten. Diese Funktionen sind
auch nützlich, wenn Sie die Funktionalität eines kompilierten Cmdlet
einschränken oder eine Funktion erstellen möchten, die einem
kompilierten Cmdlet ähnelt.
Zwischen dem Erstellen eines kompilierten Cmdlet und dem
Erstellen einer erweiterten Funktion besteht ein Unterschied.
Kompilierte Cmdlets sind .NET Framework-Klassen, die in einer
.NET Framework-Programmiersprache geschrieben werden müssen, z. B. C#.
Im Gegensatz dazu werden erweiterte Funktionen in der
Windows PowerShell-Skriptsprache so wie auch andere Funktionen
oder Skriptblöcke geschrieben.
Erweiterte Funktionen werden mit dem CmdletBinding-Attribut als
Funktionen bezeichnet, die sich ähnlich wie Cmdlets verhalten. Das
CmdletBinding-Attribut ähnelt dem Cmdlet-Attribut, mit dem in
kompilierten Cmdlet-Klassen die Klasse als Cmdlet bezeichnet wird.
Weitere Informationen über diesem Attribut finden Sie unter
"about_Functions_CmdletBindingAttribute".
Im folgenden Beispiel wird eine Funktion veranschaulicht, die
einen Namen akzeptiert und dann einen Gruß mit dem angegebenen
Namen ausgibt. Mit dieser Funktion wird ein Name definiert, der
ein Paar aus Verb ("Send") und Substantiv ("Greeting") enthält,
ähnlich wie das Verb-Substantiv-Paar eines kompilierten Cmdlets.
Funktionen müssen jedoch kein Verb-Substantiv-Namen aufweisen.
function Send-Greeting
{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[string] $Name
)
Process
{
write-host ("Hallo " + $Name + "!")
}
}
Die Parameter der Funktion werden mit dem Parameter-Attribut
deklariert. Dieses Attribut kann allein verwendet werden, es kann
jedoch auch mit dem Alias-Attribut oder verschiedenen anderen
Parametervalidierungsattributen kombiniert werden.
Weitere Informationen zum Deklarieren von Parametern (u. a.
dynamischen, zur Laufzeit hinzugefügten Parametern) finden Sie unter
about_Functions_Advanced_Parameters.
Die tatsächliche Aktion der obigen Funktion wird im Process-Block
ausgeführt, der der ProcessingRecord-Methode entspricht, mit der
kompilierte Cmdlets die an dieses übergebenen Daten verarbeiten.
Dieser Block wird zusammen mit dem Begin-Block und dem End-Block
im Thema "about_Functions_Advanced_Methods" beschrieben.
Erweiterte Funktionen unterscheiden sich auf die folgende Weise
in kompilierten Cmdlets:
- Wenn ein Zeichenfolgenarray an einen booleschen Parameter
gebunden wird, tritt bei Bindung erweiterter Funktionsparame
ter keine Ausnahme auf.
- Vom ValidateSet-Attribut und vom ValidatePattern-Attribut
können keine benannten Parameter übergeben werden.
- Erweiterte Funktionen können nicht in Transaktionen
verwendet werden.
SIEHE AUCH
about_Functions_Advanced_CmdletBindingAttribute
about_Functions_Advanced_Methods
about_Functions_Advanced_Parameters
Windows PowerShell-Cmdlets (http://go.microsoft.com/fwlink/?LinkID=135279,
möglicherweise auf Englisch)
C:\Windows>powershell get-help about_functions_advanced_methods -full
ColorConsole [Version 1.7.1000] PowerShell 2.0-Export
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2014 Microsoft Corporation.