If-Probleme
Hallo @ all,
Mein Problem ist die folgende Programmzeile:
if "findstr /C:error C:\SAFE\error-msg_LogFileSBConnector.txt" EQU "findstr /C:error C:\SAFE\LogFileSBConnector.log" goto 2
Sinn des ganzen ist es, nach dem Wort "error in der 1. und der 2. datei zu gucken und wenn bei beiden das gleiche rauskommt (also die gleichen Zeilen mit "error") dann soll zur Marke 2 gesprungen werden.
Nur warum funktioniert das nicht???
Mein Problem ist die folgende Programmzeile:
if "findstr /C:error C:\SAFE\error-msg_LogFileSBConnector.txt" EQU "findstr /C:error C:\SAFE\LogFileSBConnector.log" goto 2
Sinn des ganzen ist es, nach dem Wort "error in der 1. und der 2. datei zu gucken und wenn bei beiden das gleiche rauskommt (also die gleichen Zeilen mit "error") dann soll zur Marke 2 gesprungen werden.
Nur warum funktioniert das nicht???
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 138384
Url: https://administrator.de/forum/if-probleme-138384.html
Ausgedruckt am: 24.12.2024 um 01:12 Uhr
10 Kommentare
Neuester Kommentar
Da du einen String vergleichst, hast du schonmal die gesuchte Zeichenfolge (in dem fall /C:error) auch in Gänsefüsschen gesetzt?
weil so vergleichst du nur den String "findstr /C:error C:\SAFE\error-msg_LogFileSBConnector.txt" mit dem String "findstr /C:error C:\SAFE\LogFileSBConnector.log"
was immer ein False ausgibt. ;)
weil so vergleichst du nur den String "findstr /C:error C:\SAFE\error-msg_LogFileSBConnector.txt" mit dem String "findstr /C:error C:\SAFE\LogFileSBConnector.log"
was immer ein False ausgibt. ;)
Moin Denim44
Ich weiß nicht, ob es sinnvoll ist darauf zu antworten.
Dazu müsste man/frau denn wissen ob die Welt in deinen Logfiles wirklich so einfach ist, wie du sie in dieser Zeile darstellst, nämlich
Da ich derartig klare und übersichtliche Welten bislang nur bei Pippi Langstrumpf vorgefunden habe, nie aber in der IT-Welt, würde ich ohne genauere Kenntnis von Plan und Algorithmus deines Batchschnipsels keine vermeintlichen Lösungen vorschlagen wollen.
Grüße
Biber
Ich weiß nicht, ob es sinnvoll ist darauf zu antworten.
Dazu müsste man/frau denn wissen ob die Welt in deinen Logfiles wirklich so einfach ist, wie du sie in dieser Zeile darstellst, nämlich
- Immer, aber auch immer existiert in Datei A ein und nur ein Satz mit dem Suchwort "error"
- und Immer, aber auch immer existiert in Datei B ein und nur ein Satz mit dem Suchwort "error"
Da ich derartig klare und übersichtliche Welten bislang nur bei Pippi Langstrumpf vorgefunden habe, nie aber in der IT-Welt, würde ich ohne genauere Kenntnis von Plan und Algorithmus deines Batchschnipsels keine vermeintlichen Lösungen vorschlagen wollen.
Grüße
Biber
Direkt weiss ich auch darauf keine Lösung, nimm doch Notepad++ oder ein anderes Programm, welches 2 verschiedene Textdateien auf Änderungen überprüfen kann.
Wobei Immer mit dem Befehl FINDSTR die gesamte Zeile eingelesen wird, in deinem Beispiel würde also das Datum auch eine entscheidende Fehlerquelle darstellen...
Wobei Immer mit dem Befehl FINDSTR die gesamte Zeile eingelesen wird, in deinem Beispiel würde also das Datum auch eine entscheidende Fehlerquelle darstellen...
SET text = ""
%text% = FINDSTR "error" "D:\test1.txt"
SET text2 = ""
%text2% = FINDSTR "error" "D:\test2.txt"
if
%text% == %text2% goto :WEITER
else goto :Fehler
:WEITER
echo "Wohin du auch immer springen wolltest"
pause
:FEHLER
echo Fehler
damit hab ichs probiert, bringt aber auch nicht den gewünschten erfolg.
Ich weiss momentan nicht woran das liegen könnte, das es nicht funktioniert.
%text% = FINDSTR "error" "D:\test1.txt"
SET text2 = ""
%text2% = FINDSTR "error" "D:\test2.txt"
if
%text% == %text2% goto :WEITER
else goto :Fehler
:WEITER
echo "Wohin du auch immer springen wolltest"
pause
:FEHLER
echo Fehler
damit hab ichs probiert, bringt aber auch nicht den gewünschten erfolg.
Ich weiss momentan nicht woran das liegen könnte, das es nicht funktioniert.
Moin Denim44,
dann wäre aber doch der Algoritmus ein ganz anderer in deiner oben angegebenen Zeile, nämlich
Grüße
Biber
dann wäre aber doch der Algoritmus ein ganz anderer in deiner oben angegebenen Zeile, nämlich
- pflüge mit FINDSTR /i "Error" DateiA komplett durch (== erzeuge eine zeilenweise aufgebaute Liste aller Zeilen mit "error" aus DateiA)
- Für alle Komplettzeilen aus dieser Liste mache... (== FOR /F "delims=" %%i in ('FindStr /i "error" dateiA' ) do...)
- pro Zeile einen Vergleich auf diese Komplettzeile, ob sie denn in DateiB existiert
- wenn ja, dann .....(hier versinkt wieder alles im Nebel, weil ich deinen Plan nicht kenne)
Grüße
Biber
Hallo Denim44!
Wie Biber und radiohead1 gelingt es auch mir nicht, aus Deiner Beschreibung herauszulesen, wohin der Weg denn nun führen soll:
Die Strategie für den letzten Fall hat Biber ja bereits skizziert ...
Grüße
bastla
Wie Biber und radiohead1 gelingt es auch mir nicht, aus Deiner Beschreibung herauszulesen, wohin der Weg denn nun führen soll:
- Willst Du wissen, ob alle "error"-Zeilen aus A auch in B vorhanden sind,
- oder genauer: ob die gleichen "error"-Zeilen (und keine zusätzlichen) auch in B stehen,
- oder doch nur für jede "error"-Zeile aus A, die auch in B vorkommt, etwas Geheimnisvolles ab dem Label ":2" ausführen?
Die Strategie für den letzten Fall hat Biber ja bereits skizziert ...
Grüße
bastla
@radiohead1
Ich nehme an, Du meinst etwas in der Art
(wobei vorausgesetzt werden muss, dass "test2.txt" gleich wie "test1.txt" sortiert ist - ansonsten jeweils noch ein "
Falls ja, wäre damit der von mir oben angesprochene Fall 2 abgedeckt ...
Grüße
bastla
P.S.: ""-Formatierung hat die Forums-Software auch zu bieten ...
Ich nehme an, Du meinst etwas in der Art
findstr "error" "D:\test1.txt">%temp%\1.txt
findstr "error" "D:\test2.txt">%temp%\2.txt
fc %temp%\1.txt %temp%\2.txt>nul || goto :Fehler
:WEITER
echo "Wohin du auch immer springen wolltest"
pause
goto :eof
:FEHLER
echo Fehler
|sort
" hinzufügen).Falls ja, wäre damit der von mir oben angesprochene Fall 2 abgedeckt ...
Grüße
bastla
P.S.: ""-Formatierung hat die Forums-Software auch zu bieten ...