Unterstützung für Platzhalter in Cmdlet-Parametern
Häufig müssen Sie ein Cmdlet so entwerfen, dass es für eine Gruppe von Ressourcen und nicht für eine einzelne Ressource ausgeführt wird. Beispielsweise muss ein Cmdlet möglicherweise alle Dateien in einem Datenspeicher suchen, die denselben Namen oder dieselbe Erweiterung haben. Sie müssen Platzhalterzeichen unterstützen, wenn Sie ein Cmdlet entwerfen, das für eine Gruppe von Ressourcen ausgeführt wird.
Hinweis
Die Verwendung von Platzhalterzeichen wird manchmal als Globzeichen bezeichnet.
Windows PowerShell Cmdlets, die Platzhalter verwenden
Viele Windows PowerShell-Cmdlets unterstützen Platzhalterzeichen für ihre Parameterwerte. Beispielsweise unterstützt fast jedes Cmdlet, das über einen - oder Name
Path
-Parameter verfügt, Platzhalterzeichen für diese Parameter. (Obwohl die meisten Cmdlets, die über einen Parameter verfügen, auch einen Path
LiteralPath
Parameter haben, der keine Platzhalterzeichen unterstützt.) Der folgende Befehl zeigt, wie ein Platzhalterzeichen verwendet wird, um alle Cmdlets in der aktuellen Sitzung zurück zu geben, deren Name das Get-Verb enthält.
Get-Command get-*
Unterstützte Platzhalterzeichen
Windows PowerShell unterstützt die folgenden Platzhalterzeichen.
Platzhalter | BESCHREIBUNG | Beispiel | Treffer | Stimmt nicht überein mit |
---|---|---|---|---|
* | Entspricht null oder mehr Zeichen, beginnend an der angegebenen Position | a* |
A, ag, Apple | |
? | Entspricht einem beliebigen Zeichen an der angegebenen Position. | ?n |
An, in, on | Lief |
[ ] | Entspricht einem Zeichenbereich | [a-l]ook |
Buch, Cook, Look | nook, took |
[ ] | Entspricht den angegebenen Zeichen. | [bn]ook |
book, nook | cook, look |
Wenn Sie Cmdlets entwerfen, die Platzhalterzeichen unterstützen, lassen Sie Kombinationen von Platzhalterzeichen zu. Der folgende Befehl verwendet beispielsweise das Cmdlet , um alle .txt-Dateien abzurufen, die sich im Ordner c:\Techdocs befinden und mit den Buchstaben Get-ChildItem
"a" bis "l" beginnen.
Get-ChildItem c:\techdocs\[a-l]\*.txt
Der vorherige Befehl verwendet den Bereichsplatzhalter, um anzugeben, dass der Dateiname mit den Zeichen "a" bis "l" beginnen soll, und verwendet das Platzhalterzeichen als Platzhalter für alle Zeichen zwischen dem ersten Buchstaben des Dateinamens und der [a-l]
*
.txt-Erweiterung.
Im folgenden Beispiel wird ein Bereichs-Platzhaltermuster verwendet, das den Buchstaben "d" ausschließt, aber alle anderen Buchstaben von "a" bis "f" enthält.
Get-ChildItem c:\techdocs\[a-cef]\*.txt
Behandeln von Literalzeichen in Platzhaltermustern
Wenn das von Ihnen angegebenen Platzhaltermuster Literalzeichen enthält, die nicht als Platzhalterzeichen interpretiert werden sollen, verwenden Sie das Backtickzeichen ( `
) als Escapezeichen. Wenn Sie Literalzeichen int der PowerShell-API angeben, verwenden Sie einen einzelnen Backtick. Wenn Sie literale Zeichen an der PowerShell-Eingabeaufforderung angeben, verwenden Sie zwei Backticks.
Das folgende Muster enthält beispielsweise zwei Klammern, die wörtlich genommen werden müssen.
Verwenden Sie bei Verwendung in der PowerShell-API:
- "John Smith ` [*']"
Bei Verwendung über die PowerShell-Eingabeaufforderung:
- "John Smith ` ` [* ` ']"
Dieses Muster entspricht "John Smith [Marketing]" oder "John Smith [Entwicklung]". Beispiel:
PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True
PS> "John Smith [Development]" -like "John Smith ``[*``]"
True
Cmdlet-Ausgabe und Platzhalterzeichen
Wenn Cmdlet-Parameter Platzhalterzeichen unterstützen, generiert der Vorgang in der Regel eine Arrayausgabe.
Gelegentlich ist es nicht sinnvoll, eine Arrayausgabe zu unterstützen, da der Benutzer möglicherweise nur ein einzelnes Element verwendet. Das Cmdlet unterstützt beispielsweise Set-Location
keine Arrayausgabe, da der Benutzer nur einen einzelnen Speicherort fest legt. In diesem Fall unterstützt das Cmdlet weiterhin Platzhalterzeichen, erzwingt jedoch die Auflösung an einem einzelnen Speicherort.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für