Freigeben über


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 Zeichen
    • a* entspricht aA, agund Apple
    • a* stimmt nicht überein banana
  • ? - Übereinstimmung mit einem Zeichen an dieser Position
    • ?n entspricht an, inund on
    • ?n stimmt nicht überein ran
  • [ ] – Übereinstimmung mit einem Zeichenbereich
    • [a-l]ook entspricht book, cookund look
    • [a-l]ook stimmt nicht überein took
  • [ ] - Übereinstimmung mit bestimmten Zeichen
    • [bc]ook entspricht book und cook
    • [bc]ook stimmt nicht überein hook
  • `* – Ein beliebiges Zeichen als Literal (nicht als Wildcardzeichen)
    • 12`*4 stimmt mit 12*4
    • 12`*4 stimmt nicht überein 1234

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

Weitere Informationen