Select-string-escape-Zeichen
Ich versuche zu suchen, - Verzeichnis c:\bats\
für batch-Dateien mit dem unc-Pfad \\server\public
Befehl:
Get-ChildItem -path c:\bats\ -recurse | Select-string -pattern "\\server\public"
Ich erhalte eine Fehler mit Bezug auf die string -\\server\public
:
Select-string : The string \\server\public is not a valid regular
expression: parsing "\\server\public" - Malformed \p{X} character
escape. At line:1 char:91
+ ... ts" -recurse | Select-string -pattern \\server\public
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Select-String], ArgumentException
+ FullyQualifiedErrorId : InvalidRegex,Microsoft.PowerShell.Commands.SelectStringCommand
Ich habe versucht, mit verschiedenen entweicht wie "\server\public"
oder "'\server\public'"
aber ich erhalte immer dieselbe Fehlermeldung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese mit einfachen Anführungszeichen um die Suchzeichenfolge und die Angabe "SimpleMatch".
Erweitern, mehr über das problem, da die Lösung in @campbell.rw Antwort. Die
Select-String
parameter-Pattern
unterstützt reguläre Ausdrücke. Der backslash ein steuerzeichen und muss escaped werden. Es ist nicht, dass Sie brauchen, um es zu entkommen aus der PowerShell, aber die regex-engine selbst. Das escape-Zeichen ist auch ein umgekehrter SchrägstrichKönnen Sie eine statische Methode der regex-Klasse zu tun, die harte Arbeit für Sie.
Wieder, in Ihrem Fall, mit der
-SimpleMatch
ist eine bessere Lösung.