Freigeben über


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 Zeichen
    • a* übereinstimmungen aA, , agund Apple
    • a* stimmt nicht überein banana
  • ? - Stimmen Sie für Zeichenfolgen an dieser Position mit einem Zeichen überein.
    • ?n übereinstimmungen an, , inund on
    • ?n stimmt nicht überein ran
  • ? - Stimmen Sie für Dateien und Verzeichnisse null oder ein Zeichen an dieser Position überein.
    • ?.txt Übereinstimmungen a.txt und b.txt
    • ?.txt stimmt nicht überein ab.txt
  • [ ] - Übereinstimmung mit einem Zeichenbereich
    • [a-l]ook übereinstimmungen book, , cookund look
    • [a-l]ook stimmt nicht überein took
  • [ ] - Übereinstimmung mit bestimmten Zeichen
    • [bc]ook Übereinstimmungen book und cook
    • [bc]ook stimmt nicht überein hook
  • `* - Zuordnen eines beliebigen Zeichens als Literal (kein Wildcardzeichen)
    • 12`*4 stimmt mit 12*4
    • 12`*4 stimmt nicht überein 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

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)"
  }
}

Siehe auch