about_Wildcards
Kurze Beschreibung
Beschreibt, wie Platzhalterzeichen in PowerShell verwendet werden.
Lange Beschreibung
Wildcardzeichen stellen ein oder mehrere Zeichen dar. Sie können sie verwenden, um Wortmuster in Befehlen zu erstellen. Wildcardausdrücke werden mit dem -like
Operator oder einem beliebigen Parameter verwendet, der Wildcards akzeptiert.
Um beispielsweise alle Dateien im C:\Techdocs
Verzeichnis mit einer .ppt
Dateinamenerweiterung abzugleichen, geben Sie Folgendes ein:
Get-ChildItem C:\Techdocs\*.ppt
In diesem Fall stellt das 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:
*
- Übereinstimmung mit null oder mehr Zeichena*
übereinstimmungenaA
, ,ag
undApple
a*
stimmt nicht übereinbanana
?
- Stimmen Sie für Zeichenfolgen an dieser Position mit einem Zeichen überein.?n
übereinstimmungenan
, ,in
undon
?n
stimmt nicht übereinran
?
- Stimmen Sie für Dateien und Verzeichnisse null oder ein Zeichen an dieser Position überein.?.txt
Übereinstimmungena.txt
undb.txt
?.txt
stimmt nicht übereinab.txt
[ ]
- Übereinstimmung mit einem Zeichenbereich[a-l]ook
übereinstimmungenbook
, ,cook
undlook
[a-l]ook
stimmt nicht übereintook
[ ]
- Übereinstimmung mit bestimmten Zeichen[bc]ook
Übereinstimmungenbook
undcook
[bc]ook
stimmt nicht übereinhook
`*
- Zuordnen eines beliebigen Zeichens als Literal (kein Wildcardzeichen)12`*4
stimmt mit12*4
12`*4
stimmt nicht überein1234
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
Hinweis
Der Wildcardabgleich für Dateisystemelemente funktioniert anders als für Zeichenfolgen. Weitere Informationen finden Sie im Abschnitt "Hinweise " der DirectoryInfo.GetFiles(String, EnumerationOptions)- Methode.
Es kann Vorkommen geben, in denen Sie das Literalzeichen abgleichen möchten, anstatt es als Wildcardzeichen zu behandeln. In diesen Fällen können Sie das Hintergrundzeichen (`
) verwenden, um das Wildcardzeichen zu escapen, sodass es mit dem Literalzeichenwert verglichen wird. Entspricht z. B. Zeichenfolgen, '*hello`?*'
die "hello?" enthalten.
Viele Cmdlets akzeptieren Wildcardzeichen in Parameterwerten. Im Hilfethema zu den einzelnen Cmdlets wird beschrieben, welche Parameter Wildcardzeichen akzeptieren. Bei Parametern, die Wildcardzeichen akzeptieren, wird die Groß-/Kleinschreibung nicht beachtet.
Sie können Wildcardzeichen 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-Eigenschaftswert Interactive enthält.
Get-Service | Where-Object {$_.ServiceType -Like "*Interactive*"}
Im folgenden Beispiel enthält die If
Anweisung eine Bedingung, die Zum Auffinden von Eigenschaftswerten Mithilfe von Wildcardzeichen verwendet wird. Wenn die Beschreibung des Wiederherstellungspunkts PowerShell enthält, fügt der Befehl der CreationTime-Eigenschaft des Wiederherstellungspunkts einen Wert 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)"
}
}