about_Wildcards

Kurze Beschreibung

Beschreibt die Verwendung von Platzhalterzeichen Karte in PowerShell.

Lange Beschreibung

Wild Karte Zeichen stellen ein oder mehrere Zeichen dar. Sie können sie verwenden, um Wortmuster in Befehlen zu erstellen. Wild Karte Ausdrücke werden mit dem -like Operator oder mit einem beliebigen Parameter verwendet, der wild Karte s 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 (*) wild Karte Zeichen alle Zeichen dar, die vor der .ppt Dateinamenerweiterung angezeigt werden.

Wild Karte Ausdrücke sind einfacher als reguläre Ausdrücke. Weitere Informationen finden Sie unter about_Regular_Expressions.

PowerShell unterstützt die folgenden Platzhalterzeichen Karte:

  • * - Übereinstimmung mit null oder mehr Zeichen
    • a* übereinstimmungen aA, , agund Apple
    • a* stimmt nicht überein banana
  • ? - Übereinstimmung mit einem Zeichen an dieser Position
    • ?n übereinstimmungen an, , inund on
    • ?n stimmt nicht überein ran
  • [ ] - Ü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
  • `*- Ein beliebiges Zeichen als Literal abgleichen (kein Wild Karte Zeichen)
    • 12`*4 stimmt mit 12*4
    • 12`*4 stimmt nicht überein 1234

Sie können mehrere Freihandzeichen Karte 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

Es kann Vorkommen geben, in denen Sie das Literalzeichen abgleichen möchten, anstatt es als Wild Karte Zeichen zu behandeln. In diesen Fällen können Sie das Backtickzeichen (`) verwenden, um das Wild Karte Zeichen zu escapen, sodass es mit dem Literalzeichenwert verglichen wird. Entspricht z. B. Zeichenfolgen, '*hello`?*' die "hello?" enthalten.

Viele Cmdlets akzeptieren wild Karte Zeichen in Parameterwerten. Im Hilfethema zu den einzelnen Cmdlets wird beschrieben, welche Parameter wild Karte Zeichen akzeptieren. Bei Parametern, die wild Karte Zeichen akzeptieren, wird die Groß-/Kleinschreibung nicht beachtet.

Sie können wild Karte Zeichen 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 wild Karte Zeichen verwendet, um Eigenschaftswerte zu finden. 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)"
  }
}

Weitere Informationen