xperianer
Goto Top

FTP-Meldungen mittels Batch-File in Windows XP Prof. auswerten

Ich glaube, dass alle Programmierer an 2 entscheidenden Fehlern leiden
1. Ich bin dem Fehler auf der Spur
2. Das war der letzte Fehler
Quelle: unbekannt - ist aber definitiv nicht von mir aber enthält echt die Wahrheit

Um den täglichen Datenaustausch mit unserem Außendienst so einfach wie möglich zu machen, habe ich das alles mit Batch-Files organisiert. Jetzt braucht jeder nur noch eine der Aufgaben entsprechende Taste tippen und es geht los. Wir nutzen eine feste IP.

              set ftp-extern=217.xx.xx.xx
              set ftp-intern=192.168.0.1
              set base=\batch             
	 set cmdf=%systemdrive%%base%\cmd_ftp


Eine bestehnde Datei auf dem FTP-Server darf nicht überschrieben werden also versuche ich diese Datei per FTP zu holen
	REM export.rar vom Server holen
	ftp -v -s:%cmdf%\get_belege.ftp %ftp-server% 


Auszug2: get_belege.ftp
            benutzername
            ftp-passwort
            :
            get export.rar
            quit


Das funktioniert auch alles wunderbar. Aber jetzt kommt ein Problem, zu dem ich bisher noch keine Lösung gefunden habe. Unser FTP-Server ist aber nicht da und ein Prüfen und Auswerten des Ping auf 217.xxx.xxx.xxx zeigt immer online an, da der FTP-Server ja eine andere IP hat. Folgende Meldung wird ausgegeben:

> FTP : connect : Unbekannte Fehlernummer

Wie kann ich jetzt im Batch-File darauf mit einem GOTO reagieren ?

Content-Key: 121751

Url: https://administrator.de/contentid/121751

Printed on: April 20, 2024 at 01:04 o'clock

Mitglied: 60730
60730 Jul 31, 2009 at 10:46:24 (UTC)
Goto Top
Ich glaube, dass alle Programmierer an 2 entscheidenden Fehlern leiden

ist ja eigentlich eher keine Begrüßung, schon gar nicht am Admin Day...

set ftp-extern=217.xx.xx.xx
set ftp-intern =192.168.0.1
...und
ftp -v -s:%cmdf%\get_belege.ftp %ftp-server%
passen in meinen Augen zwar nicht zusammen, aber auch das sei mal nur erwähnt und nicht weiter drauf eingegangen.

Wie kann ich jetzt im Batch-File darauf mit einem GOTO reagieren ?
"Dein" goto finde ich zwar nicht, aber mittels loggen und goto ginge es.

ftp -v -s:%cmdf%\get_belege.ftp %ftp-server% >meinftp.log

Gruß
Mitglied: 77559
77559 Jul 31, 2009 at 10:51:27 (UTC)
Goto Top
Zitat von @xperianer:

Wie kann ich jetzt im Batch-File darauf mit einem GOTO reagieren ?

In dem du die Meldungen auswertest, z. Bsp. (ungetestet)
For /f "delims=" %%A in (  
	'ftp -v -s:%cmdf%\get_belege.ftp %ftp-server% 2^>^&1'  
) do If "%%A" EQU "FTP : connect : Unbekannte Fehlernummer" set "Err=%%A"  

Gruß
LotPings
Member: LittleFlame
LittleFlame Jul 31, 2009 at 12:52:40 (UTC)
Goto Top
Ich weiss, es is unhöflich dazwischenzuquatschen, aber da ich immer fleissig mitlese und so versuche was zu lernen, hab ich ne kurze Frage:
In der Zeile

'ftp -v -s:%cmdf%\get_belege.ftp %ftp-server% 2^>^&1'

was bewirkt hier das

2^>^&1


Vielen Dank und schönen Admin-Day noch an alle face-smile

LittleFlame
Mitglied: 77559
77559 Jul 31, 2009 at 13:07:57 (UTC)
Goto Top
For /f führt den Befehl zwischen den ' ' Zeichen in einer sekundären Cmd Shell aus. Damit die Umleitung der Fehlerausgabe in die normale Ausgabe "2>&1" nicht von der ersten Shell interpretiert wird, müssen die Zeichen > und & jeweils mit einem ^ escaped werden.

Gruß
LotPings
Member: xperianer
xperianer Aug 03, 2009 at 08:44:12 (UTC)
Goto Top
Ich habe nicht vergessen, mich zu bedanken, sondern komme erst heute dazu alle Hilfen zu lesen und weiterzuarbeiten.
Herzlichen Dank für die Hilfen.

Nur - funktioniert leider keiner Eurer Vorschläge.
Die Bildschirmausgabe
 > FTP : connect : Unbekannte Fehlernummer 
wird nicht so übergeben. in der Datei "meinftp.log" steht nämlich folgendes drin

ftp> Ungültiger Befehl
ftp> benutzername
Ungültiger Befehl
ftp> passwort
Ungültiger Befehl
:
:
quit

quit ist das einzige Kommando, welches fehlerfrei ausgeführt wird. Diese Meldung "Ungültiger Befehl" kann aber ganz viel bedeuten und nicht den Fehler, daß der FTP-Server nicht da ist und genau das will ich ja abfangen.

Hat eventuell noch jemand eine Idee?
Member: Biber
Biber Aug 12, 2009 at 14:54:36 (UTC)
Goto Top
Moin xperianer,

hat sich denn am Status dieses Beitrags etwas geändert?
ist es gelöst, erledigt, offen oder inzwischen gegenstandslos?

Bitte gib doch mal Feedback, erst recht, wenn es noch nicht funktioniert.

Grüße
Biber
Mitglied: 60730
60730 Aug 13, 2009 at 08:33:01 (UTC)
Goto Top
Zitat von @Biber:
Moin xperianer,

hat sich denn am Status dieses Beitrags etwas geändert?
ist es gelöst, erledigt, offen oder inzwischen gegenstandslos?

Bitte gib doch mal Feedback, erst recht, wenn es noch nicht
funktioniert.

Moin,

die gleiche Frage auch von mir, denn anders - als von xperianer vermutet - handelt es sich bei "meinem" "Vorschlag" nicht nur um eine Idee - die den Status ungestetet hat, sondern um einen Schnippsel, der sich seit mehr als einem Jahrzehnt im täglichen Einsatz bewiesen hat.

Der Grund für das "Feedback"
Ungültiger Befehl ist wohl eher in einer "vermurksten" Steuerdatei zu suchen.

FTP
Admin
bringt denn auch Ungültiger Befehl - denn Admin wäre genau das - kein gültiger Befehl (und in meinem Fall auch kein gültiger Anmeldename).

Von daher einfach mal genau die Schritte, die die Batch durchlaufen soll per Hand durchspielen und oder mal nach FTP Batch Script hier suchen, dort finden sich auch genügend gelöste Threads mit identischem Inhalt.

Gruß
Member: xperianer
xperianer Aug 13, 2009 at 16:34:01 (UTC)
Goto Top
Danke für Eure Hinweise und Vorschläge. So langsam fängt das ganze auch an zu funktionieren. Es waren mehr als nur diese 1 Fehlermeldung vom FTP, die behandelt werden mußten.

Fehler waren u.a. daß
- Daten gesendet werden sollten aber keine Verbindung zum WWW aufgebaut wurde (Codeschnipsel dazu hier gefunden) oder
- Kollegen im Netzwerk der Firma waren und trotzdem eine externe Verbindung aufbauen wollten. (Fehlermeldung ungültiger Befehl)
und .....

ich nutze den Schnipsel von TimoBeil
ftp -v -s:%cmdf%\get_belege.ftp %ftp-server% >meinftp.log
find "xxxxxxxxxxxxxxx" meinftp.log && goto error || goto weiter  
und habe jetzt mehrere Zeilen
find "xxxxxxxxxxxxxxx" meinftp.log && goto error || goto weiter  
in der BatchDatei.

Danke allen, die mir geholfen haben.