Entfernen eines Zitats in der Suchzeile fainstr

8

Wie kann ich ein Zitat in einer Suchzeichenfolge richtig umgehen, wenn findstr.exe verwendet wird?

Beispiel:

%Vor%

Dies wird an die Konsole ausgegeben und nicht an die angegebene Datei.

Ich mache das direkt in der Befehlszeile, nicht wirklich in einer Batch-Datei, obwohl diese Information auch nützlich sein könnte.

    
Merlyn Morgan-Graham 13.02.2011, 06:29
quelle

4 Antworten

6

Bitte korrigieren Sie mich, wenn ich falsch liege, aber ich denke, ich habe es herausgefunden:

%Vor%

Dies scheint die korrekte Ausgabe zu liefern, selbst wenn Sie Leerzeichen in Ihrer Suchzeichenfolge haben. Es ermöglicht Dateiumleitung, Verrohrung und zusätzliche Literale in demselben findstr.exe-Aufruf ordnungsgemäß zu funktionieren.

Der ursprüngliche Befehl in meiner Frage funktioniert nicht, da sowohl cmd.exe als auch findstr.exe eine spezielle Verarbeitung für das " -Zeichen haben. Ich endete mit einer unübertroffenen Menge von Anführungszeichen in der Verarbeitung von cmd.exe.

Der neue Befehl in meiner Antwort funktioniert, weil ^" dem Zitat erlaubt, von cmd.exe zu findstr.exe zu gehen, und \" teilt findstr.exe mit, dieses Zitat für Befehlsverarbeitungszwecke zu ignorieren und es als a zu behandeln Zeichenliteral.

Bearbeiten :

Nun, meine Lösung war richtig, aber der Grund dafür ist völlig falsch. Ich habe ein kleines Programm geschrieben, um es zu testen.

Ich habe herausgefunden, dass cmd.exe diese Eingabe an das Programm übergibt, wenn ich die falsche Befehlszeile übergebe:

%Vor%

Wenn die Zeichen korrekt maskiert sind, übergibt cmd.exe diese Eingabe an das Programm (und leitet die Ausgabe an eine Datei weiter):

%Vor%     
Merlyn Morgan-Graham 13.02.2011, 07:04
quelle
3

Gefunden Re: FINDSTR Suche nach einem couble quote und redirect / pipe die Ausgabe

%Vor%

Ich habe keine Ahnung, warum das funktioniert.

Funktioniert jedoch nicht zum Pipettieren der Ausgabe. Siehe den Link die Ausgabe von piping findstr

    
typo.pl 13.02.2011 07:03
quelle
1

Wäre das nicht gerade genug:

%Vor%

?

BEARBEITEN

Wenn Sie nach einem Weg gesucht haben, das " -Zeichen in einem in Anführungszeichen gesetzten Parameter zu übergeben, könnte es (anhand Ihres Beispiels)

sein %Vor%

(das Zeichen " wird zweimal in einer Zeichenfolge in Anführungszeichen wiederholt).

    
Andriy M 13.02.2011 12:24
quelle
1

Nach meinen Tests ist das richtige Escapezeichen Backslash:

%Vor%     
Ciove 04.11.2016 12:41
quelle