heinze
Goto Top

Findstr: nach langem String in Txt-File suchen

OS = WIN10 Pro

Hallo @ all

aktuell versuche ich mittels Batch in einem Text-File nach einer Zeichenfolge zu suchen und dann den Errorlevel zu verarbeiten.

Das Format des Text-Files ist
(Auszug)

.
Bo Napoleon - Born and Raised Hawaiian (feat. Kapena DeLima)
Maoli - Mercy
Shar Carillo - Sweeter Than Honey
The Green - My Hawaii
JOCK - V/T
.

Ich lese dies Textfile mittels For / F aus:

@echo on &setlocal EnableDelayedExpansion

set "source=G:\textfile.txt"  
set "durchsuchliste"=G:\durchsuchliste.txt"  
set "nichtvorhandenliste=NichtVorhandenlistenixdrin"  

set "varia=xxx"  
set "variakurz=inVariakurtzisnix"  


for /f "tokens=1,* delims=^(^" %%i in (%source%) do (  
	set "varia=%%i"  

:: leider bringe ich es nicht zusammen gleich die Variable %varia" mittels ~0,-1 zu kürzen darum der Umweg in der nächsten Zeile 
	set variakurz=!varia:~0,-1!

Nun möchte ich mittels findstr den String in %variakurz% in der Durchsuchliste.txt finden.
Wenn %ERRORLEVEL% gleich 0 ist dann soll nichts geschehen, wenn ungleich 0 dann echo !variakurz! >> %nichtvorhandenliste% geschrieben werden.

Ich habe mittlerweile die Parameter /I /r getestet auch /C:Zeichenfolge erbringt mir kein Ergebniss

Auf der commandline erhalte ich bei nur einem Wort suche schon Fehlermeldungen:
C:\Windows\System32>findstr /C:Hawaiian %varia%
FINDSTR: Bo kann nicht geöffnet werden.
FINDSTR: Napoleon kann nicht geöffnet werden.
FINDSTR: - kann nicht geöffnet werden.
FINDSTR: Born kann nicht geöffnet werden.
FINDSTR: and kann nicht geöffnet werden.
FINDSTR: Raised kann nicht geöffnet werden.
FINDSTR: Hawaiian kann nicht geöffnet werden.

C:\Windows\System32>echo %varia%
Bo Napoleon - Born and Raised Hawaiian


Was mache ich hier falsch? und geht es denn überhaupt nach längerem String mit Leerzeichen und "-" zu suchen?

Neuer Zwischenstand:

Ddie Findstr-Abfrage happert weiters.
Syntax:
findstr /X /N /C:!varia! G:\KCCNvergleich\tempdaten\vergleichzeile2fehlt.txt

Wenn in der Varibalen !vari! durch die Forschleife der Wert gesetzt wird:

set varia="Maoli - Mercy"  

gibt findstr den %errorlevel%=0" aus da das Wort Maoli öfters in der durchsuchliste.txt vorhanden ist.
Jetzt habe ich noch das mit dem ERRORLEVEL getestet (ERRORLEVELhandling
aber weder:
f
indstr /L /C:!varia! %vergleichseite%
If "errorlevel"== 0 echo !varia!>> %ziel%  
noch
If NOT ERRORLEVEL 0  (bzw 1) echo !varia!>> %ziel%

bringt mich ans Ziel meiner Wünsche.

Wie komme ich zu einem wirklich stringmässigem Suchergebnis?


Danke für Eure Hilfe im voraus.
Heinze

Content-ID: 574947

Url: https://administrator.de/contentid/574947

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

Heinze
Heinze 29.05.2020 um 15:40:58 Uhr
Goto Top
Hallo Leute

Problem gelöst.. einfach und easy man muss nur wissen:
Link

Syntax:
findstr /v /x /g:vergleichzeile2fehlt.txt vergleichoriginal.txt