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, 1358 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 ..
Neuester Wissensbeitrag
Windows Update

Windows Update-Suche nach Win7 Neuinstallation wieder schneller

(1)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

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

Frage von 126594 zum Thema Batch & Shell ...

Batch & Shell
gelöst Schreiben eines Strings mit Leerzeichen in eine Datei (6)

Frage von c20082005 zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (21)

Frage von Winuser zum Thema Hyper-V ...

Exchange Server
Bestehende eMails autoamatisch weiterleiten (21)

Frage von metal-shot zum Thema Exchange Server ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (16)

Frage von ProfessorZ zum Thema Router & Routing ...