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

gelöst Die vorletzte Zeile einer Textdatei mittels Batch auslesen

Mitglied: .Sessl

.Sessl (Level 1) - Jetzt verbinden

26.10.2010 um 16:12 Uhr, 6629 Aufrufe, 8 Kommentare

WinSCP Übertragung von Dateien, Infomail mittels BLAT ob Übertragung erfolgreich war oder nicht, überprüfen ob Infomail versandt wurde oder nicht

Hallo zusammen,

ich habe mich in den letzten Tagen etwas mit Batch Scripting beschäftigt.
Nun stehe ich trotz intensiver Suche, hier und überall, an einem Punkt an dem ich nicht weiter komme.

Folgendes habe ich vor:

- definierte Dateien mittels WinSCP übertragen [funktioniert]
- überprüfen ob die Übertragung erfolgreich war oder nicht [funktioniert]
- Infomail mit Status mittels 'BLAT' übertragen [funktioniert manchmal]
- überprüfen ob Infomail versandt wurde [funktioniert nicht]

An sich funktioniert der Versand der Infomails, doch manchmal kommt keine Verbindung zum Mailserver zustande,
aus diesem Grund, wollte ich einfach das Logfile von Blat auslesen und eine simple Schleife erstellen.

Nun mein Problem.
Ich finde keine Möglichkeit die vorletzte Zeile auszulesen und einen Teil in eine Variable zu 'stecken'


Logfile von Blat: (oberer Teil, vom erfolgreichem Teil wurde abgeschnitten)(interessant ist die Fehlerlog)

01.
2010.10.22 23:37:13 (Fri): <<<getline<<< 250 2.6.0  <01cb7231$Blat.v2.6.2$4a6f15a9$1114f3c93f39@192.168.40.110> Queued mail for delivery 
02.
2010.10.22 23:37:13 (Fri): >>>putline>>> QUIT 
03.
2010.10.22 23:37:13 (Fri): <<<getline<<< 221 2.0.0 PROXY1 Service closing transmission channel 
04.
2010.10.22 23:37:13 (Fri)-------------End of Session------------------ 
05.
 
06.
2010.10.23 22:00:16 (Sat)------------Start of Session----------------- 
07.
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19) 
08.
2010.10.23 22:00:46 (Sat): Error: Wait a bit (possible timeout). 
09.
2010.10.23 22:00:46 (Sat): SMTP server error 
10.
2010.10.23 22:00:46 (Sat): Error: Not a socket. 
11.
2010.10.23 22:00:46 (Sat): Error: Not a socket. 
12.
2010.10.23 22:00:46 (Sat)-------------End of Session------------------

Hier nun meine Batch Datei:
01.
@echo off 
02.
 
03.
chcp 1252>nul 
04.
set ue=ü 
05.
set ae=ä 
06.
set oe=ö 
07.
set Uue=Ü 
08.
set Aae=Ä 
09.
set Ooe=Ö 
10.
set ss=ß 
11.
chcp 850>nul 
12.
set error=Error 
13.
 
14.
 
15.
WinSCP.com /script=scp_export_.txt /log=scp_log.txt 
16.
if errorlevel 1 goto error 
17.
 
18.
 
19.
:mailerfolg 
20.
 
21.
blat "mail_info\erfolgreich.txt" ^ 
22.
-to max.muster@mann.de ^ 
23.
-debug -timestamp -log "mail_info\blatSMTPlog.txt" ^ 
24.
-subject "WinSCP %Uue%bertragung - Erfolgreich!" 
25.
 
26.
for /f "tokens=6 delims=:, " %%a in (mail_info\blatSMTPlog.txt) do (set var1=%%a) 
27.
if %var1%==%error% goto mailerfolg 
28.
 
29.
 
30.
goto end 
31.
 
32.
 
33.
:error 
34.
:mailfehler 
35.
 
36.
blat "mail_info\fehlerhaft.txt" ^ 
37.
-to max.muster@mann.de ^ 
38.
-debug -timestamp -log "mail_info\blatSMTPlog.txt" ^ 
39.
-subject "WinSCP %Uue%bertragung - Fehlerhaft! 
40.
 
41.
for /f "tokens=6 delims=:, " %%b in (mail_info\blatSMTPlog.txt) do (set var2=%%b) 
42.
if %var2%==%error% goto mailfehler 
43.
 
44.
 
45.
:end
Jedoch lese ich nur die letzte Zeile mit diese FOR-Schleife aus, ich benötige die vorletze Zeile.
Hat jemand eine Idee?

Würde in der Blat-Log folgende Zeile die letzte Zeile sein, würde das Script schon funktionieren
01.
2010.10.23 22:00:46 (Sat): Error: Not a socket

Besten Dank für Infos und Hilfestellungen
Grüße Tobias
Mitglied: miniversum
26.10.2010 um 16:32 Uhr
Jetzt mal so aus dem Bauch raus: Ändere mal Zeile 26 in:
for /f "tokens=6 delims=:, " %%a in (mail_info\blatSMTPlog.txt) do if "%%a" neq "" (set var1=%%a)

Wobei die bessere Lösung wäre, einfach den Errorlevel abzufragen. Dafür ist der ja da
http://www.blat.net/examples/ErrorLevel2.html
Bitte warten ..
Mitglied: .Sessl
26.10.2010 um 16:45 Uhr
Hallo miniversum,

nein, leider nicht. Die Variable %%a zieht den Wert 'of' von End of session. Also die letzte Zeile.
Nur Interesse halber, was sollte das notequal "" erreichen?


Gruß
Tobias
Bitte warten ..
Mitglied: miniversum
26.10.2010 um 19:24 Uhr
Na dann eben auf "of" kontrollieren.
Dadurch werden nur die Zeilen in die Variable übernommen in denen dieses Tocken nicht "of" ist.
Aber wie schon geschrieben wäre woll die Abfrage von errorlevel besser geeignet.
Bitte warten ..
Mitglied: .Sessl
26.10.2010 um 21:29 Uhr
Der Link ist doch neu, oder habe ich diesen vorhin übersehen?
Btw. damit klappt es, danke. "Warum habe ich diese Lösung nicht gefunden?"


Gibt es dennoch eine Lösung für meine Frage?


Gruß
Tobias
Bitte warten ..
Mitglied: miniversum
26.10.2010 um 21:43 Uhr
Möglichkeit 1:
for /f "tokens=6 delims=:, " %%a in (mail_info\blatSMTPlog.txt) do if "%%a" neq "of" (set var1=%%a)
Ist aber unschön.
Möglichkeit 2:
Du magst es wie bisher auch, filterst aber die Zeile mit "End of Session" raus. Das geht mit findstr /v Da ist dan die letzte Zeile die die du willst. Geht aber auch nur wenn die letzte Zeile gleich ist.
Möglichkeit 3 (Die universellere Lösung):
Zähle die Zeilen der Datei (mit findstr /n oder mit for einfach durchzählen). Danach vom Wert 2 Subtrahieren. Diesen Wert dann in die For Schleife als skip einbauen und die zuweisung mit if not defined zuweisen.
Hilfen zu den beschriebenen Befehlen und Stichwörtern findest du hier im Batch und Shell Bereich genügend.

Vorzuziehen ist allerdings bei sowas auf jeden Fall die errorlevel Lösung.
Bitte warten ..
Mitglied: .Sessl
26.10.2010 um 22:50 Uhr
Naja, Möglichkeit 1 geht nicht, da die letzte Zeile immer, bei Erfolg oder Misserfolg, im Logfile steht.
Möglichkeit 2 und 3 müsste ich mal ausprobieren.

Danke für die schnelle Hilfe.
Bitte warten ..
Mitglied: miniversum
27.10.2010 um 12:45 Uhr
Warum soll dann Möglichkeit 1 nicht gehen?
for /f "tokens=6 delims=:, " %%a in (mail_info\blatSMTPlog.txt) do if "%%a" neq "of" (set var1=%%a)
Sollte dir dennoch die vorletzte Zeile liefern
Bitte warten ..
Mitglied: .Sessl
29.10.2010 um 13:38 Uhr
Nein leider nicht.
Wenn ich mir die Variable %var1% ausgeben lassen, steht immer of drin.

Er landet also in einer endlos Schleife.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Bestimmte Zeile einer Textdatei mit Batch auslesen

gelöst Frage von PinkFLuffyUnicornBatch & Shell2 Kommentare

Hi, ich habe ein kleines Batch Script, welches mir den Status der Firewall ausgeben soll(ob an oder aus) der ...

Batch & Shell

Textdatei Zeile für Zeile auslesen

Frage von RIPUEDBatch & Shell

Hallo, ich würde gerne mit einem Batch-Skript Zeilen aus einer Textdatei einzeln und nacheinander auslesen und diese dann nach ...

Batch & Shell

Komplette Zeile aus Textdatei auslesen

gelöst Frage von tegwertBatch & Shell3 Kommentare

Hallo zusammen! Ich möchte aus einer Textdatei immer die Zeile 4 auslesen und dessen Inhalt in eine Variable übernehmen. ...

Batch & Shell

Batch Textdatei Spaltenweise auslesen

Frage von PinkFLuffyUnicornBatch & Shell7 Kommentare

hi, ist es irgendwie möglich anstatt eine Textdatei via Batch Spaltenweise auszulesen und nicht zeilenweise wie das normal ganz ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Grafikkarten & Monitore
4k EIZO Monitor, Fernseher und Splitter
Frage von LerxxeyGrafikkarten & Monitore9 Kommentare

Hallo Zusammen, vielleicht könnt ihr mir bei einem Problem helfen wo ich einfach nicht mehr weiterkomme Und zwar haben ...

TK-Netze & Geräte
Fax im Betrieb
Frage von gansa28TK-Netze & Geräte6 Kommentare

Hallo zusammen, Endlich wurden meine Gebete Erhört und der Rechner meines Bekannten dem ich etwas unter die Arme greife, ...

Humor (lol)
Nerd Zeitschrift gesucht
Frage von 2SeitenHumor (lol)6 Kommentare

Hey Zusammen, Ich suche eine Zeitschrift bei der es ums technische Basteln geht. Pc zusammenschrauben, Arduino Projekte, Server Tipps ...