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

Dateien auf FTP-Server zählen und gezielt herunterladen

Frage Entwicklung Batch & Shell

Mitglied: Barbrady

Barbrady (Level 1) - Jetzt verbinden

05.10.2010, aktualisiert 10:27 Uhr, 5241 Aufrufe, 4 Kommentare

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
Mitglied: Snowman25
05.10.2010 um 10:41 Uhr
Zitat von Barbrady:
Guten Morgen,

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....

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

Dabei gibt es 1 großes Problem: Batch und FTP passen nicht gut zusammen und mögen sich nicht wirklich.
01.
@echo on 
02.
ftp open [Servername] 
03.
[Username] 
04.
[Passwort] 
05.
cd [Verzeichnisname] 
06.
 
07.
mls * C:\Temp\Inhalt2.txt 
08.
 
09.
set file=C\temp\Inhalt2.txt 
10.
for /F "delims=" %%i in (%file%) do ( 
11.
 
12.
echo "ftp mget %%i" >> ftp_controlfile.ftp 
13.
ftp mget %%i 
14.
15.
 
16.
ftp C:\Temp\ftp_controlfile.ftp 
17.
dir >> ergebnis.txt 
18.
Vergleiche Inhalt2.txt mit ergebnis.txt 
19.
 
20.
IF "Inhalt2.txt" == "Ergebnis.txt" goto Antr else goto Antf 
21.
 
22.
:Antr 
23.
Echo Die Liste der Dateien vom FTP-Server und die der Uebertragenen ist identisch 
24.
goto Ende 
25.
:Antf 
26.
Echo ????? 
27.
goto Ende 
28.
 
29.
:Ende 
30.
bye
Das wird so nix. Du kannst
  1. keine FTP- und Batchbefehle mischen
  2. FTP nicht über Batch steuern
  3. 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.

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
Bitte warten ..
Mitglied: 60730
05.10.2010 um 18:27 Uhr
moin,

die Frage ist doch bedeutet Batch==Boardmittel oder darfst du freie 3rd Party Tools nehmen?

  • Wget sollte die eleganteste Lösung bieten.
  • FTP Batch sollte dir soviele Treffer liefern, dass sich das zerpflücken deiner einzelnen Zeilen nicht lohnt.

@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)
Dabei gibt es 1 großes Problem:
Nöö, die beiden passen schon zusammen...

Gruß
Bitte warten ..
Mitglied: Barbrady
06.10.2010 um 08:22 Uhr
Guten Morgen,

Zitat von Snowman25:
> Zitat von 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....

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...

Weil sie es toll finden kleine Mitarbeiter zu quälen ? Wer weiß ...

Aber wir kennen doch alle das Sprichwort:
Wessen Brot ich ess, dessen Lied ich sing ;)

Es soll unbedingt in Batch geschrieben werden (über Gründe etc. werde ich an dieser Stelle nicht reden)

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".

Mit freundlichen Grüßen

EDIT:

So, der FTP Teil der Batch hatt sich erledigt, ich habe es geschafft das die Batch die Dateien ausliest, die Dateinnamen in eine .txt speichert und danach die Dateien nacheinander runterläd...
Jetzt muss nur noch Abgeglichen und ausgegeben werden ob die Daten übereinstimmen...
Bitte warten ..
Mitglied: 60730
06.10.2010 um 16:09 Uhr
Moin,

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".

Du hättest nur auf den blauen Text klickern müssen, das Rad haben wir schon erfunden und verdichtet.
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Linux Tools
CURL mehrere Dateien vom ftp-Server herunterladen (10)

Frage von highpriest zum Thema Linux Tools ...

Batch & Shell
gelöst Per Batch FTP-Server Dateien ändern (1)

Frage von Marlon1 zum Thema Batch & Shell ...

Netzwerkmanagement
Zugriff auf FTP-Server durch Chrome in Windows 7 klappt nicht (3)

Frage von emilien2 zum Thema Netzwerkmanagement ...

Firewall
gelöst Zwei FTP-Server hinter einer UTM 9 Software Appliance (10)

Frage von iGordon zum Thema Firewall ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (17)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...