Batch: Dateien nach "exakten" Strings durchsuchen
Hallo,
Ich möchte eine txt Datei nach einem String durchsuchen aber stoße dabei immer auf ein Problem. Wenn ich z.B. nach "String" suchen möchte und mit "Strin" suchen lasse gibt mir das Programm trotzdem einen Treffer aus. Kann man dies irgendwie vermeiden? Es ist sehr wichtig das das Programm nach dem exakten String sucht da ich Strings habe die mit den selben Zeichen anfangen und sich nicht ändern lassen, da ich sie genau so in einer Variable abspeichern muss.
Ich möchte eine txt Datei nach einem String durchsuchen aber stoße dabei immer auf ein Problem. Wenn ich z.B. nach "String" suchen möchte und mit "Strin" suchen lasse gibt mir das Programm trotzdem einen Treffer aus. Kann man dies irgendwie vermeiden? Es ist sehr wichtig das das Programm nach dem exakten String sucht da ich Strings habe die mit den selben Zeichen anfangen und sich nicht ändern lassen, da ich sie genau so in einer Variable abspeichern muss.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 474137
Url: https://administrator.de/contentid/474137
Ausgedruckt am: 15.11.2024 um 03:11 Uhr
22 Kommentare
Neuester Kommentar
Hi,
Dann musst Du nach ganzen Wörtern suchen. Man müsste jetzt wissen, wie "das Programm" da sucht.
Mit einem eigenen Programm (Script) könnte man bei der Suche berücksichtigen
Je nachdem, was das für eine Datei ist, müsste man dann ggf. noch andere Zeichen berücksichtigen, z.B.
E.
Dann musst Du nach ganzen Wörtern suchen. Man müsste jetzt wissen, wie "das Programm" da sucht.
Mit einem eigenen Programm (Script) könnte man bei der Suche berücksichtigen
- Zeile beginnt Suchstring + Leerzeichen
- Zeile enhält Leerzeichen + Suchstring + Leerzeichen
- Zeile endet mit Leerzeichen + Suchstring
Je nachdem, was das für eine Datei ist, müsste man dann ggf. noch andere Zeichen berücksichtigen, z.B.
- Satzzeichen
- Tabulator
- Anführungszeichen
E.
das Schema stimmt nicht, da es dein angebliches Problem schlicht nicht aufzeigt.
Nutzt du findstr? Wenn ja: https://docs.microsoft.com/de-de/windows-server/administration/windows-c ...
Regex ist dein Freund
Regex ist dein Freund
dann hier gucken:
mies übersetzt
^ Zeilenposition: der Zeile ab
$ Zeilenposition: Ende der Zeile
mies übersetzt
Findstr /irc:"^123$" Datei.txt
findstr /?
Sucht nach Zeichenfolgen in Dateien.
FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P]
[/F:Datei] [/C:Zeichenfolge] [/G:Datei] [/D:Verzeichnisliste]
[/A:Farbattribute] [/OFF[LINE]] Zeichenfolgen
[[Laufwerk:][Pfad]Dateiname[ ...]]
/B Sucht am Zeilenanfang.
/E Sucht am Zeilenende.
/L Sucht nach dem Text buchstabengetreu.
/R Sucht nach der Zeichenfolge als regulärem Ausdruck.
/S Sucht nach entsprechenden Dateien im aktuellen Verzeichnis
und allen Unterverzeichnissen.
/I Ignoriert Groß-/Kleinschreibung.
/X Gibt Zeilen aus, die vollkommen übereinstimmen.
/V Gibt Zeilen aus, die die Zeichenfolge nicht enthalten.
/N Gibt die Zeilennummer vor jeder Trefferzeile an.
/M Gibt nur die Namen der Dateien aus, die die Zeichenfolge enthalten.
/O Gibt den Offset des Zeichens vor jeder gefundenen Zeile aus.
/P Überspringt Dateien mit Zeichen, die nicht gedruckt werden können.
/OFF[LINE] Überspringt keine Offlinedateien.
/A:Attrib Gibt die Farbattribute als zwei hexadezimale Ziffern an.
Siehe "COLOR /?"
/F:Datei Liest eine Dateiliste aus der angegebenen Datei ein.
/C:Zeichenfolge Sucht nach Zeichenfolge buchstabengetreu.
/G:Datei Liest Suchzeichenfolge aus der angegebenen Datei ein.
/D:Verzeichnis Durchsucht eine mit Semikolons getrennte Verzeichnisliste.
Zeichenfolge Text, nach dem gesucht werden soll.
[Laufwerk:][Pfad] Dateiname
Angabe der zu durchsuchenden Datei(en).
Leerzeichen weisen auf mehrere getrennte Zeichenfolgen hin, außer es wurde /C
als Option angegeben. Zum Beispiel sucht 'FINDSTR "Windows NT" BR.TXT' nach
"Windows" oder "NT" in der Datei BR.TXT. 'FINDSTR /C:"Windows NT" BR.TXT'
hingegen sucht nach "Windows NT" in der Datei BR.TXT.
Schnellübersicht regulärer Ausdrücke:
. Platzhalter: beliebiges Zeichen
* Wiederholung: keine oder mehrere Wiederholungen
des/der vorhergehenden Zeichens/Klasse
^ Zeilenposition: Anfang der Zeile
$ Zeilenposition: Ende der Zeile
[Klasse] Zeichenklasse: beliebiges Zeichen aus einem Zeichensatz
[^Klasse] Umgekehrte Klasse: beliebiges Zeichen nicht im Zeichensatz
[x-y] Bereich: beliebige Zeichen im angegebenen Bereich
\x Escape: direkte Verwendung eines Metazeichens x
\<xyz Wortposition: am Anfang des Wortes
xyz\> Wortposition: am Ende des Wortes
Informationen zu FINDSTR mit regulären Ausdrücken finden Sie im
Onlinebefehlsverzeichnis.
Zitat von @Sarumahr:
Ich hätte zu dem Thema nochmal eine Frage undzwar ist es möglich, wenn der Erste Suchdurchlauf nichts findet einen zweiten in einer anderen txt Datei zu starten?
Logo, wofür gibt's wohl das Errorlevel ...Ich hätte zu dem Thema nochmal eine Frage undzwar ist es möglich, wenn der Erste Suchdurchlauf nichts findet einen zweiten in einer anderen txt Datei zu starten?
Findstr /irc:"^123$" "d:\Pfad\Datei.txt" || (
Findstr /irc:"^123$" "d:\Pfad\Datei2.txt"
)
Doku lesen und richtig machen, dann lüppt dat auch, heulen hat noch nie geholfen!