Dateien auf FTP-Server zählen und gezielt herunterladen
Guten Morgen,
ich wurde in unserer Firma leider Gottes mit der Erstellung einer Batch-Datei beauftragt.
Gottlob bin ich diesbezüglich aber sehr, sehr wenig bewandert....
Die Batch-Datei soll:
- auf einen FTP Server zugreifen
- prüfen welche Dateien in dem bestimmten Ordner vorhanden sind
- diese Dateien in eine Textdatei schreiben
- jede Datei einzeln heruntergeladen werden
- die heruntergeladenen Dateien mit denen in der Textdatei vergleich ob vollständig übertragen wurde
- melden falls alles geklappt hatt bzw. eine Fehlermeldung angeben welche Datei fehlerhaft oder gar nicht übertragen wurde
Ich habe mit meinen bescheidenen Batchkenntnissen und ein bisschen Hilfe aus dem Internet ein bisschen probiert, komme aber nicht sehr weit:
@echo on
ftp open [Servername]
[Username]
[Passwort]
cd [Verzeichnisname]
mls * C:\Temp\Inhalt2.txt
set file=C\temp\Inhalt2.txt
for /F "delims=" %%i in (%file%) do (
echo "ftp mget %%i" >> ftp_controlfile.ftp
ftp mget %%i
)
ftp C:\Temp\ftp_controlfile.ftp
dir >> ergebnis.txt
Vergleiche Inhalt2.txt mit ergebnis.txt
IF "Inhalt2.txt" == "Ergebnis.txt" goto Antr else goto Antf
:Antr
Echo Die Liste der Dateien vom FTP-Server und die der Uebertragenen ist identisch
goto Ende
:Antf
Echo ?????
goto Ende
:Ende
bye
Meine Probleme liegen darin, das ich nicht weiß wie ich die Dateien alle einzeln herunterladen und kontrollieren kann, welche Datei evtl. fehlerhaft übertragen wurde und wie ich diese "Fehlermeldung" ausgeben kann.
Danke im Voraus und einen schönen Tag noch,
Grüße Barbrady
ich wurde in unserer Firma leider Gottes mit der Erstellung einer Batch-Datei beauftragt.
Gottlob bin ich diesbezüglich aber sehr, sehr wenig bewandert....
Die Batch-Datei soll:
- auf einen FTP Server zugreifen
- prüfen welche Dateien in dem bestimmten Ordner vorhanden sind
- diese Dateien in eine Textdatei schreiben
- jede Datei einzeln heruntergeladen werden
- die heruntergeladenen Dateien mit denen in der Textdatei vergleich ob vollständig übertragen wurde
- melden falls alles geklappt hatt bzw. eine Fehlermeldung angeben welche Datei fehlerhaft oder gar nicht übertragen wurde
Ich habe mit meinen bescheidenen Batchkenntnissen und ein bisschen Hilfe aus dem Internet ein bisschen probiert, komme aber nicht sehr weit:
@echo on
ftp open [Servername]
[Username]
[Passwort]
cd [Verzeichnisname]
mls * C:\Temp\Inhalt2.txt
set file=C\temp\Inhalt2.txt
for /F "delims=" %%i in (%file%) do (
echo "ftp mget %%i" >> ftp_controlfile.ftp
ftp mget %%i
)
ftp C:\Temp\ftp_controlfile.ftp
dir >> ergebnis.txt
Vergleiche Inhalt2.txt mit ergebnis.txt
IF "Inhalt2.txt" == "Ergebnis.txt" goto Antr else goto Antf
:Antr
Echo Die Liste der Dateien vom FTP-Server und die der Uebertragenen ist identisch
goto Ende
:Antf
Echo ?????
goto Ende
:Ende
bye
Meine Probleme liegen darin, das ich nicht weiß wie ich die Dateien alle einzeln herunterladen und kontrollieren kann, welche Datei evtl. fehlerhaft übertragen wurde und wie ich diese "Fehlermeldung" ausgeben kann.
Danke im Voraus und einen schönen Tag noch,
Grüße Barbrady
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 152363
Url: https://administrator.de/forum/dateien-auf-ftp-server-zaehlen-und-gezielt-herunterladen-152363.html
Ausgedruckt am: 29.04.2025 um 03:04 Uhr
4 Kommentare
Neuester Kommentar
Guten Morgen @Barbrady,
ich wurde in unserer Firma leider Gottes mit der Erstellung einer Batch-Datei beauftragt.
Gottlob bin ich diesbezüglich aber sehr, sehr wenig bewandert....
Gottlob bin ich diesbezüglich aber sehr, sehr wenig bewandert....
Warum machen die Leute soetwas? Wieso werden immer wieder Menschen mit einer Aufgabe beauftragt, mit deren Materie sie sich nicht auskennen? Ich werde es wohl nie verstehen...
Die Batch-Datei soll:
- auf einen FTP Server zugreifen
- prüfen welche Dateien in dem bestimmten Ordner vorhanden sind
- diese Dateien in eine Textdatei schreiben
- jede Datei einzeln heruntergeladen werden
- die heruntergeladenen Dateien mit denen in der Textdatei vergleich ob vollständig übertragen wurde
- melden falls alles geklappt hatt bzw. eine Fehlermeldung angeben welche Datei fehlerhaft oder gar nicht übertragen wurde
- auf einen FTP Server zugreifen
- prüfen welche Dateien in dem bestimmten Ordner vorhanden sind
- diese Dateien in eine Textdatei schreiben
- jede Datei einzeln heruntergeladen werden
- die heruntergeladenen Dateien mit denen in der Textdatei vergleich ob vollständig übertragen wurde
- melden falls alles geklappt hatt bzw. eine Fehlermeldung angeben welche Datei fehlerhaft oder gar nicht übertragen wurde
Dabei gibt es 1 großes Problem: Batch und FTP passen nicht gut zusammen und mögen sich nicht wirklich.
@echo on
ftp open [Servername]
[Username]
[Passwort]
cd [Verzeichnisname]
mls * C:\Temp\Inhalt2.txt
set file=C\temp\Inhalt2.txt
for /F "delims=" %%i in (%file%) do (
echo "ftp mget %%i" >> ftp_controlfile.ftp
ftp mget %%i
)
ftp C:\Temp\ftp_controlfile.ftp
dir >> ergebnis.txt
Vergleiche Inhalt2.txt mit ergebnis.txt
IF "Inhalt2.txt" == "Ergebnis.txt" goto Antr else goto Antf
:Antr
Echo Die Liste der Dateien vom FTP-Server und die der Uebertragenen ist identisch
goto Ende
:Antf
Echo ?????
goto Ende
:Ende
bye
Das wird so nix. Du kannst
- keine FTP- und Batchbefehle mischen
- FTP nicht über Batch steuern
- werden deine beiden
DIR
-Ausgaben nie gleich sein.
Meine Probleme liegen darin, das ich nicht weiß wie ich die Dateien alle einzeln herunterladen und kontrollieren kann,
welche Datei evtl. fehlerhaft übertragen wurde und wie ich diese "Fehlermeldung" ausgeben kann.
welche Datei evtl. fehlerhaft übertragen wurde und wie ich diese "Fehlermeldung" ausgeben kann.
Das macht der FTP dann sowieso automatisch, die Fehlerausgabe. Du musst viel eher darauf achten, dass du im richtigen Transfermodus bist (Binary / ASCII).
Einfach ein
pause
ans Ende stellen, sodass man Fehlermeldungen lesen kann.Danke im Voraus und einen schönen Tag noch,
Sag deinem Auftraggeber lieber, dass das mit Batch nicht bzw. nur sehr schwer geht. Viele Programme mit FTP-Möglichkeit haben die Option, Verzeichnisse zu Synchronisieren. Diese achten auch auf den richtigen Transfertyp und laden fehlerhafte Dateien erneut. Kannst ja z.B. den Total Commander verwenden.
Grüße Barbrady
Gruß
Snow

moin,
die Frage ist doch bedeutet Batch==Boardmittel oder darfst du freie 3rd Party Tools nehmen?
@snow: Grundsätzlich Jein
Wer nix neues machen muß - lernt nix (und deshalb lass ich den Lernerfolg mal beim TO und kritzel nix für Frau Copy und Herrn Paste)
Gruß
die Frage ist doch bedeutet Batch==Boardmittel oder darfst du freie 3rd Party Tools nehmen?
- Wget sollte die eleganteste Lösung bieten.
- sollte dir soviele Treffer liefern, dass sich das zerpflücken deiner einzelnen Zeilen nicht lohnt.
@snow: Grundsätzlich Jein
Dabei gibt es 1 großes Problem:
Nöö, die beiden passen schon zusammen...Gruß

Moin,
Du hättest nur auf den blauen Text klickern müssen, das Rad haben wir schon erfunden und verdichtet.
Es soll unbedingt in Batch geschrieben werden
Wget ist ein Komadozeilenwerkzeug, das ganz harte auch so benutzen, weicheier wie ich aber innerhalb einer Batch.Aber ich habe gestern schon ein paar Fortschritte gemacht, mal sehen ob ich es doch noch schaffe.
Bin im Moment dabei die letzten beiden Aufgaben der Batch zu "erdichten".
Bin im Moment dabei die letzten beiden Aufgaben der Batch zu "erdichten".
Du hättest nur auf den blauen Text klickern müssen, das Rad haben wir schon erfunden und verdichtet.