about_Wildcards
Kurze Beschreibung
Beschreibt die Verwendung von Wildcardzeichen in PowerShell.
Lange Beschreibung
Wildcardzeichen stellen ein oder mehrere Zeichen dar. Sie können sie verwenden, um Wortmuster in Befehlen zu erstellen. Feldhalterausdrücke werden mit dem -like
Operator oder mit einem beliebigen Parameter verwendet, der Feldhalter akzeptiert.
Geben Sie beispielsweise Folgendes ein, um alle Dateien im C:\Techdocs
Verzeichnis mit einer .ppt
Dateinamenerweiterung abzugleichen:
Get-ChildItem C:\Techdocs\*.ppt
In diesem Fall stellt das Sternchen (*
) Platzhalterzeichen alle Zeichen dar, die vor der .ppt
Dateinamenerweiterung angezeigt werden.
Feldhalterausdrücke sind einfacher als reguläre Ausdrücke. Weitere Informationen finden Sie unter about_Regular_Expressions.
PowerShell unterstützt die folgenden Feldhalterzeichen:
*
– Übereinstimmung mit null oder mehr Zeichena*
entsprichtaA
,ag
undApple
a*
stimmt nicht übereinbanana
?
- Übereinstimmung mit einem Zeichen an dieser Position?n
entsprichtan
,in
undon
?n
stimmt nicht übereinran
[ ]
– Übereinstimmung mit einem Zeichenbereich[a-l]ook
entsprichtbook
,cook
undlook
[a-l]ook
stimmt nicht übereintook
[ ]
- Übereinstimmung mit bestimmten Zeichen[bc]ook
entsprichtbook
undcook
[bc]ook
stimmt nicht übereinhook
`*
– Ein beliebiges Zeichen als Literal (nicht als Wildcardzeichen)12`*4
stimmt mit12*4
12`*4
stimmt nicht überein1234
Sie können mehrere Feldhalterzeichen im selben Wortmuster einschließen. Geben Sie beispielsweise Folgendes ein, um Textdateien mit Namen zu suchen, die mit den Buchstaben a bis l beginnen:
Get-ChildItem C:\Techdocs\[a-l]*.txt
Es kann Fälle geben, in denen Sie dem Literalzeichen entsprechen möchten, anstatt es als Einstellzeichen zu behandeln. In diesen Fällen können Sie das Backtickzeichen (`
) verwenden, um das Feldhalterzeichen zu escapen, sodass es mithilfe des Literalzeichenwerts verglichen wird. Vergleicht beispielsweise Zeichenfolgen, '*hello`?*'
die "hello?" enthalten.
Viele Cmdlets akzeptieren Platzhalterzeichen in Parameterwerten. Im Hilfethema für jedes Cmdlet wird beschrieben, welche Parameter Platzhalterzeichen akzeptieren. Bei Parametern, die Platzhalterzeichen akzeptieren, wird bei ihrer Verwendung die Groß-/Kleinschreibung nicht beachtet.
Sie können Feldhalterzeichen 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 Wert der ServiceType-EigenschaftInteractive enthält.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
Im folgenden Beispiel enthält die If
-Anweisung eine Bedingung, die Nach -Eigenschaftswerten mithilfe von Feldhalterzeichen sucht. Wenn die Beschreibung des Wiederherstellungspunkts PowerShell enthält, fügt der Befehl einer Protokolldatei den Wert der CreationTime-Eigenschaft des Wiederherstellungspunkts hinzu.
$p = Get-ComputerRestorePoint
foreach ($point in $p) {
if ($point.description -like "*PowerShell*") {
Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
}
}