Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

TXT Nach String durchsuchen und Zeilennummer als errorlevel schreiben.

Frage Entwicklung Batch & Shell

Mitglied: Malli88

Malli88 (Level 1) - Jetzt verbinden

21.07.2014, aktualisiert 14:34 Uhr, 1377 Aufrufe, 9 Kommentare, 1 Danke

Hallo zusammen.

Ich habe die hoheitliche Aufgabe bekommen eine known errordatenbank zu schreiben.
Hier die Ausgangssituation:
Wir haben mehrer Batchscripte
Die Scripte sollen wenn ein bekannter Fehler, der als String in einer knownerror.txt gespeichert ist diese Datei danach durchsuchen und die Zeilennummer als Errorlevel zurück geben.
Geht sowas überhaupt mit Batch?

Bitte um Hilfe.

Danke!!!
Mitglied: Gersen
LÖSUNG 21.07.2014, aktualisiert um 14:34 Uhr
Hallo,

so etwas:

01.
for /f "tokens=1 delims=:" %%i in ('findstr /n /c:"fehlerstring" "knownerror.txt"') do ( 
02.
echo gefunden in Zeile: %%i 
03.
exit /B %%i  
04.
)
Gruß,
Gersen
Bitte warten ..
Mitglied: Malli88
21.07.2014 um 14:34 Uhr
Du bist der König!

Bitte warten ..
Mitglied: Malli88
21.07.2014 um 14:39 Uhr
Hast du zufällig noch ne Idee wie ich den Errorstate eines WINSCP an das ausführende Batchscript übergeben kann?
Wenn ich absichtlich einen Error 2 in WINSCP produziere bekomme ich in dem Shellscript immer nur einen Error 1.
Bitte warten ..
Mitglied: Gersen
21.07.2014 um 15:09 Uhr
Für jeden Befehl der Batch wird der Returncode in eine Variable "ERRORLEVEL" geschrieben - und durch den nächsten Befehl wieder überschrieben.
01.
winscp.com ... 
02.
if %errorlevel% neq 0 exit /b %errorlevel%
Hier würde für den Fall, dass der WinSCP-Befehl nicht erfolgreich verläuft (Returncode != 0), das Skript mit dem Returncode von WinSCP verlassen.
Bitte warten ..
Mitglied: Malli88
21.07.2014 um 15:14 Uhr
Das funktioniert aber leider nicht.

Hier mal ein Log von dem besagten WINSCP befehl.

2014-07-21 14:36:59.789+0200 [info] C:\ABITDATAtest\Import
2014-07-21 14:36:59.789+0200 [info] Fehler beim Wechseln in Verzeichnis '/home/ftproot/multiversa/daa'.
2014-07-21 14:36:59.789+0200 [info] Kann den realen Pfad für '/home/ftproot/multiversa/daa' nicht ermitteln.
2014-07-21 14:36:59.789+0200 [info] Datei oder Verzeichnis nicht gefunden.
2014-07-21 14:36:59.789+0200 [info] Fehlercode: 2
2014-07-21 14:36:59.789+0200 [info] Fehlernachricht vom Server : No such file
2014-07-21 14:36:59.789+0200 [info] /
2014-07-21 14:36:59.789+0200 [info] ---------------------------------------------------------------------------------
2014-07-21 14:36:59.789+0200 [info] errorlevel 1
2014-07-21 14:36:59.791+0200 [info] SCHEDULER-915 Process event
2014-07-21 14:36:59.793+0200 [ERROR] SCHEDULER-280 Process terminated with exit code 1 (0x1)
2014-07-21 14:36:59.795+0200 [WARN] SCHEDULER-845 Task ended without processing the order. The order remains in job's order queue in the same state
2014-07-21 14:36:59.796+0200 [info] SCHEDULER-843 Task has ended processing of Order TEST:TEST, state=SFTPImport, on JobScheduler
Bitte warten ..
Mitglied: Gersen
LÖSUNG 21.07.2014, aktualisiert um 15:52 Uhr
Ja. Mea culpa - ich lese hier:

"WinSCP executables return exit code 1, when any command is interrupted due to an error or any prompt is answered Abort (even automatically in batch mode). Otherwise it returns the exit code 0."

Ein Weg wäre, das XML-Logging zu verwenden - und für den Fall, dass WinSCP mit dem RC 1 abbricht, die XML-Datei zu parsen. Aber ob sich der Aufwand lohnt...?
Bitte warten ..
Mitglied: Malli88
21.07.2014 um 15:52 Uhr
Danke du hast mir sehr weitergeholfen!!!!
Bitte warten ..
Mitglied: Malli88
21.07.2014 um 16:03 Uhr
Leider muss ich dich doch nochmal belästigen. Sorry, bin echt ein totaler Anfänger in Batch.
Wie kann ich den den Errorcode der im WinSCP erzeugt wird in eine Variable packen und diese im Batch auslesen um ggf. damit zu Parsen?
Bitte warten ..
Mitglied: Gersen
21.07.2014, aktualisiert um 16:50 Uhr
Ein Versuch wäre (anhand der Struktur Deiner Log-Datei):

01.
echo. > C:\temp\winscp.log 
02.
winscp.com {Deine Parameter} /log="C:\temp\winscp.log" 
03.
if %errorlevel% neq 0 ( 
04.
for /f "tokens=1,2,3,4 delims=:" %%i in ('findstr /c:"Fehlercode:" "C:\temp\winscp.log"') do ( 
05.
echo Fehlercode ist %%l  
06.
exit /B %%l 
07.
08.
)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Schreiben eines Strings mit Leerzeichen in eine Datei (6)

Frage von c20082005 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Batch & Shell
gelöst String in TXT suchen, überprüfen und wenn noetig aendern ? (4)

Frage von buliwyf zum Thema Batch & Shell ...

Entwicklung
gelöst Powershell File durchsuchen (1)

Frage von easy4breezy zum Thema Entwicklung ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte