about_Wildcards
Kurze Beschreibung
Beschreibt, wie Platzhalterzeichen in PowerShell verwendet werden.
Lange Beschreibung
Freihalterzeichen stellen mindestens ein Zeichen dar. Sie können sie verwenden, um Wörtermuster in Befehlen zu erstellen. Wildcardausdrücke werden mit dem Operator oder mit einem beliebigen Parameter verwendet, der -like
Wildcards akzeptiert.
Wenn Sie beispielsweise alle Dateien im C:\Techdocs
Verzeichnis mit einer .ppt
Dateinamenerweiterung übereinstimmen möchten, geben Sie Folgendes ein:
Get-ChildItem C:\Techdocs\*.ppt
In diesem Fall stellt das Sternchen () Sternchen (*
) alle Zeichen dar, die vor der .ppt
Dateinamenerweiterung angezeigt werden.
Wildcardausdrücke sind einfacher als reguläre Ausdrücke. Weitere Informationen finden Sie unter about_Regular_Expressions.
PowerShell unterstützt die folgenden Platzhalterzeichen:
Platzhalter | BESCHREIBUNG | Beispiel | Match | Keine Übereinstimmung |
---|---|---|---|---|
* |
Übereinstimmung mit null oder mehr Zeichen | a* |
aA, ag, Apple | Banane |
? |
Übereinstimmung mit einem Zeichen in dieser Position | ?n |
ein, in, on | Lief |
[ ] |
Übereinstimmen eines Zeichenbereichs | [a-l\]ook |
Buch, Koch, Aussehen | Nahm |
[ ] |
Übereinstimmung mit bestimmten Zeichen | [bc]ook |
Buch, Koch | Haken |
`* |
Übereinstimmung mit einem beliebigen Zeichen als Literal (kein Wildcardzeichen) | 12`*4 |
12*4 | 1234 |
Sie können mehrere Wildcardzeichen in dasselbe Wortmuster einschließen. Wenn Sie beispielsweise Textdateien mit Namen suchen möchten, die mit den Buchstaben a bis l beginnen, geben Sie Folgendes ein:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Möglicherweise gibt es Fälle, in denen Sie dem Literalzeichen entsprechen möchten, anstatt es als Wildcardzeichen zu behandeln. In diesen Fällen können Sie das Backtick (`
) -Zeichen verwenden, um das Wildcardzeichen zu escapen, sodass es mit dem Literalzeichenwert verglichen wird. Stimmt beispielsweise mit Zeichenfolgen überein, '*hello`?*'
die "hello?" enthalten.
Viele Cmdlets akzeptieren Wildcardzeichen in Parameterwerten. Das Hilfethema für jedes Cmdlet beschreibt, welche Parameter Wildcardzeichen akzeptieren. Bei Parametern, die Wildcardzeichen akzeptieren, ist deren Verwendung groß-/kleinschreibungsempfindlich.
Sie können Freihalterzeichen in Befehlen und Skriptblöcken verwenden, z. B. zum Erstellen eines Wortmusters, das Eigenschaftswerte darstellt. Der folgende Befehl ruft beispielsweise Dienste ab, in denen der ServiceType-EigenschaftswertInteractive enthält.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
Im folgenden Beispiel enthält die If
Anweisung eine Bedingung, die Wildcardzeichen verwendet, um Eigenschaftswerte zu finden. Wenn die Beschreibung des Wiederherstellungspunkts PowerShell enthält, fügt der Befehl den Wert der CreationTime-Eigenschaft des Wiederherstellungspunkts zu einer Protokolldatei hinzu.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}