Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Batch & Shell

GELÖST

If-Probleme

Mitglied: Denim44

Denim44 (Level 1) - Jetzt verbinden

16.03.2010 um 15:09 Uhr, 2994 Aufrufe, 10 Kommentare

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???
Mitglied: radiohead1
16.03.2010 um 15:18 Uhr
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. ;)
Bitte warten ..
Mitglied: Denim44
16.03.2010 um 15:21 Uhr
lol .. naja macht sinn^^

und wie kann ich das nun am besten lösen?
Bitte warten ..
Mitglied: Biber
16.03.2010 um 15:50 Uhr
Moin Denim44

Zitat von Denim44:
und wie kann ich das nun am besten lösen?
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"
und die beiden kann ich aufeinanderlegen und gucken, ob irgendwo was übersteht.

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
Bitte warten ..
Mitglied: Denim44
16.03.2010 um 15:57 Uhr
dann sag ich mal "Willkommen in der Neuzeit" xD



Also in dabei A steht bspw.:
19.03.2010 error
20.03.2010 ok
21.03.2010 error

Jetzt soll das Programm die kompletten Zeilen aus A herauslesen, welche mit error bestückt sind, und dies mit datei B (gleiche prozedur wie A) vergleichen. Wenn dann in beiden dateien die gleichen Zeilen mit error findet, dann soll zur Sprungmarke 2 gesprungen werden.
Bitte warten ..
Mitglied: radiohead1
16.03.2010 um 15:58 Uhr
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...
Bitte warten ..
Mitglied: radiohead1
16.03.2010 um 16:01 Uhr
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.
Bitte warten ..
Mitglied: Biber
16.03.2010 um 16:05 Uhr
Moin Denim44,

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
Bitte warten ..
Mitglied: bastla
16.03.2010 um 16:40 Uhr
Hallo Denim44!

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
Bitte warten ..
Mitglied: bastla
16.03.2010 um 16:51 Uhr
@radiohead1

Ich nehme an, Du meinst etwas in der Art
01.
findstr "error" "D:\test1.txt">%temp%\1.txt 
02.
findstr "error" "D:\test2.txt">%temp%\2.txt 
03.
fc %temp%\1.txt %temp%\2.txt>nul || goto :Fehler 
04.
 
05.
:WEITER 
06.
echo "Wohin du auch immer springen wolltest" 
07.
pause 
08.
goto :eof 
09.
 
10.
:FEHLER 
11.
echo Fehler
(wobei vorausgesetzt werden muss, dass "test2.txt" gleich wie "test1.txt" sortiert ist - ansonsten jeweils noch ein "|sort" hinzufügen).

Falls ja, wäre damit der von mir oben angesprochene Fall 2 abgedeckt ...

Grüße
bastla

P.S.: "Code"-Formatierung hat die Forums-Software auch zu bieten ...
Bitte warten ..
Mitglied: Denim44
17.03.2010 um 09:17 Uhr
perfekt .. danke euch jungs ;)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Cmd If ()else(if) geht nicht
gelöst Frage von SaschaaaaaBatch & Shell2 Kommentare

Hallo Leute, ich habe mir ein kleines Script erstellt welches den PC herunterfährt wenn er 90 Minuten im Leerlauf ...

VB for Applications
If exist - if not exist in .vbs - Datei
gelöst Frage von Komoran12VB for Applications24 Kommentare

Moin, moin, vielleicht hat jemand ja einen Tipp für mich. Mit nachfolgender .vbs lasse ich mir einen Messagebox ausgeben: ...

C und C++
Fehler bei if (Csharp)
gelöst Frage von homeromaC und C++7 Kommentare

Hallo zusammen, ich hab mal wieder ein Blackout bei C#. Auch wenn ich das Richtige eingebe, springt es auf ...

Batch & Shell
Powershell if -eq - or
gelöst Frage von Johnny-CGNBatch & Shell7 Kommentare

Liebe Administratoren, ich hänge gerade an einer simplen CSV-Auswertung via Powershell und scheinbar mache ich etwas falsch, finde aber ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 26 MinutenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 18 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 18 StundenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 19 StundenSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen21 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...