Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Häufig müssen Sie ein Cmdlet so entwerfen, dass es für eine Gruppe von Ressourcen statt 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 aufweisen. Sie müssen Unterstützung für Wildcardzeichen bereitstellen, wenn Sie ein Cmdlet entwerfen, das für eine Gruppe von Ressourcen ausgeführt wird.
Hinweis
Die Verwendung von Wildcardzeichen wird manchmal als globbingbezeichnet.
Windows PowerShell-Cmdlets, die Platzhalter verwenden
Viele Windows PowerShell-Cmdlets unterstützen Platzhalterzeichen für ihre Parameterwerte. Beispielsweise unterstützt fast jedes Cmdlet mit einem Name
- oder Path
-Parameter Wildcardzeichen für diese Parameter.For example, every cmdlet that has a Name
or Path
parameter supports wildcard characters for these parameters. (Obwohl die meisten Cmdlets mit einem Path
Parameter auch einen LiteralPath
Parameter aufweisen, der keine Wildcardzeichen unterstützt.) Der folgende Befehl zeigt, wie ein Wildcardzeichen verwendet wird, um alle Cmdlets in der aktuellen Sitzung zurückzugeben, deren Name das Verb "Get" enthält.
Get-Command get-*
Unterstützte Wildcardzeichen
Windows PowerShell unterstützt die folgenden Platzhalterzeichen.
Platzhalter | BESCHREIBUNG | Beispiel | Treffer | Passt nicht |
---|---|---|---|---|
* | Gleicht null oder mehr Zeichen ab, 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, Koch, Look | nook, nahm |
[ ] | Entspricht den angegebenen Zeichen. | [bn]ook |
Buch, nook | Kochen, Aussehen |
Wenn Sie Cmdlets entwerfen, die Wildcardzeichen unterstützen, können Sie Kombinationen von Wildcardzeichen zulassen. Der folgende Befehl verwendet beispielsweise das Cmdlet Get-ChildItem
, um alle .txt Dateien abzurufen, die sich im Ordner "C:\Techdocs" befinden und mit den Buchstaben "a" bis "l" beginnen.
Get-ChildItem C:\techdocs\[a-l]\*.txt
Der vorherige Befehl verwendet den Bereichsplatzhalter[a-l]
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 .txt Erweiterung.
Im folgenden Beispiel wird ein Bereichs-Wildcardmuster 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 Wildcardmustern
Wenn das von Ihnen angegebene Wildcardmuster Literalzeichen enthält, die nicht als Wildcardzeichen interpretiert werden sollen, verwenden Sie das Backtick-Zeichen (`
) als Escapezeichen. Wenn Sie Literalzeichen int der PowerShell-API angeben, verwenden Sie einen einzelnen Backtick. Wenn Sie Literalzeichen an der PowerShell-Eingabeaufforderung angeben, verwenden Sie zwei Backticks.
Das folgende Muster enthält beispielsweise zwei Klammern, die wörtlich genommen werden müssen.
Bei Verwendung in der PowerShell-API verwenden Sie Folgendes:
- "John Smith '[*']"
Bei Verwendung über die PowerShell-Eingabeaufforderung:
- "John Smith ''[*']"
Dieses Muster entspricht "John Smith [Marketing]" oder "John Smith [Development]". Beispiel:
PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True
PS> "John Smith [Development]" -like "John Smith ``[*``]"
True
Cmdlet-Ausgabe- und Wildcardzeichen
Wenn Cmdlet-Parameter Wildcardzeichen 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 Set-Location
unterstützt beispielsweise keine Arrayausgabe, da der Benutzer nur einen einzigen Speicherort festlegt. In diesem Fall unterstützt das Cmdlet weiterhin Wildcardzeichen, er erzwingt jedoch die Auflösung an einer einzelnen Position.