jr-jojo
Goto Top

Die Antwort ist in der Zeile nebenan!!!! wie komme ich ran???

Hi zusammen,


Ich will in einer Batch per FTP etwas versenden.
Leider bekomme ich vom FTP keine direkte Antwort.
ich kann aber alle ausgaben des FTP`s in eine File umlenken.

Resultat:

eine Art "log"
hier kommt jeder Dateiname der mir in der Batch bekannt ist 2 mal vor.
immer in der folgenden Zeile erhalte ich Antwort auf das was mich interessiert.


ftp> put Historytest-9999.0.txt
200 PORT command successful
150 Opening ASCII mode data connection for Historytest-9999.0.txt
226 Transfer complete
FTP: 31107 Bytes gesendet in Sekunden KB/s
ftp> 0.7442.15ftp>


wie komme ich ran??

"for schleifen" gehen immer auf die Zeile in der der Dateiname vertreten ist.
ein Find bezieht sich auch auf die Zeile mit dem Dateinamen.

Ich sende bis zu 150 Dateien.
Und brauche von jeder den Status erfolgreich gesendet oder eben nicht.


Hat wer eine Idee????
Bitte

Content-Key: 227795

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

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: colinardo
colinardo 26.01.2014 aktualisiert um 16:03:47 Uhr
Goto Top
Hallo JR-Jojo,
mach doch den Upload der Dateien mit Winscp wie hier beschrieben:
FTP-Massenupload über Batch (CMD-Script) und Erstellung eines Log-Files
Einzelne Upload-Befehle lassen sich damit auch in eine einzelne Kommandozeile packen und ob der Upload erfolgreich war kannst du mit dem Exit-Code von WinSCP abfragen.

Grüße Uwe
Mitglied: JR-Jojo
JR-Jojo 26.01.2014 um 17:33:26 Uhr
Goto Top
Danke dir Colinardo,

Aber in meinem Awendungsfall und nach ausprobieren der Anwendung muss ich leider sagen so ganz überzeugt mich das nicht.
Dennoch herzlichen Dank.


In der vom Programm gelieferten LOG habe ich das selbe Problem wie oben beschrieben.
Ob eine Einzelne Datei angekommen ist sehe ich nicht in der Selben Zeile und kann es daher Schlecht auswerten.

Der Exit Code ist gut bei Erflog er sagt mir ob das gesamte geklappt hat oder nicht. Bricht die Übertragung aber bei Datei 148 von 150 ab weiss ich nicht welche schon übertragen wurden und welche nicht.
Will ich die ganze Batch neu starten erhalte ich zwangsweise Fehler da ein Teil der Dateien schon übertagen ist und überschrieben werden müssen.


Insgesamt erkenne ich ausser dem Exit-Code und einer etwas Platzsparenden Syntax keinen Vorteil der mich dazu bewegen würde ein zusätzliches Programm in meine Anwendung zu integrieren zumal es mein Problem nicht löst.


Die zu übertragenden Dateien sind sehr sensibel. Ein Verlust kann nur ein bis zwei mal pro Jahr wieder hergestellt werden. (Datensicherungen die beim Kunden vor Ort gezogen werden müssen)

Das ist auch der Grund warum ich die Dateien jede Einzeln überwachen möchte/muss.
Mitglied: Pjordorf
Pjordorf 26.01.2014 um 20:04:27 Uhr
Goto Top
Hallo,

Zitat von @JR-Jojo:
In der vom Programm gelieferten LOG
Welches wir sowie auch dessen Inhalt hier nicht kennen.

Ob eine Einzelne Datei angekommen ist sehe ich nicht in der Selben Zeile und kann es daher Schlecht auswerten.
Warum? Steht die wie in deiner Frage nebenan beim Nachbarn drin oder was?

Bricht die Übertragung aber bei Datei 148 von 150 ab weiss ich nicht
Dann Übertrage dir Datei für Datei einzeln (bei 150 Dateien auch 150 Jobs und 150 Errorlevels zum Anschauen) und nimm den Errorcode nach jeder Dateiübertragung.

Will ich die ganze Batch neu starten erhalte ich zwangsweise Fehler da ein Teil der Dateien schon übertagen
Klar.Oder du prüfst vor der Übertragung ob diese Datei schon im Ziel existiert (Länge, Erstellungsdatum, Änderungsdatum, Attribute usw.) und je nach unterschiedliche OSe (Quelle und Ziel unterschiedliche Dateistrukturen usw.) noch weitere Parameter

ein zusätzliches Programm in meine Anwendung zu integrieren zumal es mein Problem nicht löst.
Wir kennen dein Programm oder Anwendung oder was du dort eingepappt hast nicht, noch wie und womit und wie umgesetzt noch evtl Batch oder Shell Skripte oder sonstwas. Daher kann auch eine Hilfe dir nicht gezielt weiterhelfen, Wir befinden uns hier im freien Fall (und ohne Fallschirm).

Die zu übertragenden Dateien sind sehr sensibel.
Dann hol dir jemand ins Haus der weiss wie soetwas mit welchen Werkzeugen zuverlässig und Fehlerfrei gemacht wird. Die Daten sind ja Sensibel daher werden die ja wohl noch vor einem (unverschlüßelten FTP Transport) noch Verschlüßelt, gell.

Ein Verlust kann nur ein bis zwei mal pro Jahr wieder hergestellt werden.
Warum? Eine Übertragung per FTP (oder sonstwas) hat noch nie Dateien gelöscht. Die sind also zwangsweise noch vorhanden (und ohne Änderung).

(Datensicherungen die beim Kunden vor Ort gezogen werden müssen
Deine Datei vor Ort welche du per FTP Übertragen hast / willst ist doch noch vorhanden, also *+noch eine zusätzliche Datensicherung.

Das ist auch der Grund warum ich die Dateien jede Einzeln überwachen möchte/muss.
Du hast es uns bis jetzt noch nicht einmal die betroffenen Betriebssysteme (Windows, Linux, Unix, AIX...) zu nenen, geschweige deine Batchdatei noch deine Logdateien wo
nebenan die zu suchenden Einträge liegen sollen (Untereinander <> Nebeneinander, ausser du legst zwei Blatt Papier mit ausgedruckten LOG nebeneinander, dann sind die Einträge e tl.Nebenan**.

Quell OS?
Ziel OS?
Warum? Unterschiedliche Dateistrukturen und somit unterschiedliche Dateigrössenangaben(falls damit ein Vergleich machbar sein soll) möglich. Dann sind Batch = Windows und Shellskript = Linux. Nein, nicht alle Kommandos bewirken das gleiche oder sind gar vauf jedem OS Vorhanden. Die Version des OS usw. Ist der Ziel FTP per Internet oder gar per Intranet erreichbar? SMB, NFS, oder was sonst noch wichtig ist....

Und deine jetzige Batch- oder Shellskriptdatei in Code Tags bitte.

Gruß,
Peter
Mitglied: SachsenHessi
SachsenHessi 27.01.2014 um 14:57:25 Uhr
Goto Top
schau Dir mal probatchftp an. http://www.heise.de/download/pyrobatchftp-1110944.html
kann (neben vielen anderen Dingen) das auch