Ich versuche, die genaue Übereinstimmung eines Pfads ("\ Users \ sachin.a.goyal \ Desktop \ test \") zu ermitteln, der sich in einer Datei befindet:
Biggest.txt:
1 number:
name = DMS 3.0 R2 - Deployment Workbook_APAC v4_WMT
size = 15634835
path = \Users\sachin.a.goyal\Desktop\test\
2 number:
name = Scenarios
size = 254
path = \Users\sachin.a.goyal\Desktop\test\New folder\
Ich benutze diesen Befehl:
findstr /x /c:"\Users\sachin.a.goyal\Desktop\test\" Biggest.txt
Nach diesem Befehl bleibt das DOS-Fenster jedoch hängen. Es gibt keinen Fehler, aber es sieht so aus, als würde es einen anderen Parameter erwarten. Bitte helfen Sie.
windows
command-line
cmd.exe
findstr
Sachin
quelle
quelle
Antworten:
Das / x funktioniert nicht, da die gesamte Zeile mit der Suchzeichenfolge übereinstimmen muss und in diesem Fall mit einem Präfix versehen ist
path =
. Auch die\
Symbole müssen maskiert werden, damit sie nicht als Befehle interpretiert werden. Schließlich hilft der reguläre Ausdrucksmodus beim Erfassen der richtigen Zeile, da diese in einem Leerzeichen endet und dann am Zeilenende - das Zeilenende kann als dargestellt werden$
:Der Grund für Ihre Suche hängen ist wahrscheinlich einer der
\
stimmte mit einem Befehl überein.Wenn Sie eine Variable verwenden, um den gesuchten Pfad zu speichern, müssen Sie die umgekehrten Schrägstriche trotzdem umgehen. Sie können dies mit der Ersetzungsfunktion tun:
In der zweiten Zeile steht, dass alle Backslahs durch doppelte Backslashes ersetzt werden. Leider habe ich momentan keine Windows-Box zum Testen, aber möglicherweise müssen Sie die umgekehrten Schrägstriche trotzdem umgehen:
quelle
code
set var = \\ Users \\ sachin.a.goyal \\ Desktop \\ test \\ * $