Bat-Script FTP bestimmte Dateien und Unterordner

Mitglied: SGW-entertainment

SGW-entertainment (Level 1) - Jetzt verbinden

17.10.2011 um 21:49 Uhr, 4639 Aufrufe, 3 Kommentare

Hallo Admins, vielen Dank für das tolle Forum. In meiner Branche hat es sehr oft nützlich geholfen. Aber nun hier eine Situation die ich leider hier noch nicht umsetzen konnte....


Mein Problem bzw. Umsetzungsversuch:


Ich möchte via .bat ein FTP-Upload umsetzen. Soweit kein Problem!
Jedoch möchte ich in einem bestimmten Ordner UND UNTERORDNER nur bestimmte Dateien hochladen.
Mit mput *.dateiendung auch kein Problem. Jedoch wirkt das nicht für alle weiteren Unterordner, und sind hier wohl auch mehrere hundert Dateien möglich, wobei ja mput ausfallen würde.

Ich habe es mal versucht mit *\*.dateiendung, aber das brachte auch nicht die Lösung.


Nun habe ich ein kleines Script geschrieben, welches mit alle *.dateiendungen in eine Textdatei (sehr unzuverlässig, siehe unten) exportiert. Diese lese ich dann wieder ein, und setze ein einfaches "put" davor. So habe ich einen kompletten Pfad und speichere dies dann in eine .ftp ab, welche dann mit:
ftp -v -s:datei.ftp abgearbeitet wird.

dir /b /s pfad\ *.jpg>%tmp%\files.txt
dir /b /s pfad\*.xml>>%tmp%\files.txt
dir /b /s pfad\*.html>>%tmp%\files.txt
dir /b /s pfad\*.php>>%tmp%\files.txt
dir /b /spfad\*.css>>%tmp%\files.txt

Wenn man die Ordnerstrucktur behalten könnte wäre das ein "nice to have", ist aber nicht zwingend erforderlich.....

Dieses setze ich wie schon oben beschrieben in die .ftp -> FOR /f %%f IN (%tmp%\files.txt) DO echo put %%f>>%tmp%\test.ftp

Somit zeigt er jedoch nicht nur alleine die Dateien, sondern auch den Pfad ohne Datei an.

Bsp:

C:\pfad\pfad2\datei.dateiendung (richtig)
C:\pfad\pfad2\file.dateiendung (richtig)
C:\pfad\pfad2\ (falsch)

Zusätzlich brichter den Pfad ab, sobald im Pfad ein leerzeichen enthalten ist.....
Weiterhin lädt er auch nicht alle Dateien hoch, sondern bricht irgentwann mal ab, ohne Fehlermeldung oder ersichtlichen Grund.


Mit diesem Script bin ich swoeit nicht zufrieden, weil es meiner Meinung nach sehr unzuverlässig ist und Fehler schlecht vorbeugen kann..... (was natütlich an meiner mangelder Scriptrfähigkeit zurückzuführen ist)


Kann mir jemand bitte eine Lösungsansatz geben, wie ich mein Problem besser umsetzen kann....


Nochmal zur Wiederholung:

Ich habe einen bestimmten Ordner, und in diesem möchte ich bestimmte, vorher definierte Dateien hochladen. Dabei soll er auch nachfolgend alle Unterodner nach der selben Dateiendung absuchen und diese hochladen. Wie gesagt: Wenn man dabei die Ordnerstrucktir bebehalten könnte, wäre es super, ist aber kein muss!

Vielen Dank :) face-smile


MFG Heinrich
Mitglied: bastla
17.10.2011 um 22:33 Uhr
Hallo SGW-entertainment und willkommen im Forum!

Einigen der Probleme sollte mit etwas Genauigkeit beizukommen sein:
sollte zB (aufgrund des entfernten überzähligen Leerzeichens in Zeile 1 und weil zusätzlich Verzeichnisse ausdrücklich ausgeschlossen werden) nur noch passende Dateien in die Liste aufnehmen (wobei
auch schon genügen sollte) ...
Dem Leerzeichenproblem in Pfad-/Dateinamen solltest Du damit beikommen:
Zu den Abbrüchen kann ich allerdings nix sagen ...

Grüße
bastla

P.S.: Darf ich Dir die Verwendung der "Code"-Formatierung (lässt sich auch nachträglich noch einfügen ;-) face-wink) nahe legen?
Bitte warten ..
Mitglied: SGW-entertainment
17.10.2011 um 22:49 Uhr
Danke für die schnelle Antwort ;)

Ja, ich werde die Formatierung benutzen, hast Recht, ist besser so :) face-smile

Ich habe das nun auch zwichenzeitig eleganter lösen können.....

Den Ordner kann ich so vorher gut festlegen. Behandelt nun auch die Unterordner. Es kommen nur Dateien mit kompletten Pfad! Leerzeichen werden unterstützt :) face-smile Landet direkt in der zu behandelten Datei, ohne Zwischenschritt!

Dann natürlich die .ftp ausführen mit entsprechendem Befehl, fertig ;)
Bitte warten ..
Mitglied: bastla
17.10.2011 um 23:07 Uhr
Hallo SGW-entertainment!

Auch das lässt sich noch kompakter formulieren:
Grüße
bastla
Bitte warten ..
Heiß diskutierte Inhalte
HTML
Ich brauche dringend Hilfe !
gelöst JulianpustVor 1 TagFrageHTML17 Kommentare

Hallo erstmal, ich habe großen Mist gebaut in der Firma wo ich gerade mal 2 Tage arbeite. Was ist passiert: Ich sollte von Gmail ...

Windows 10
Windows 10 schickt lokale Anfragen an das Gateway - was tun?
gelöst runthegaunzVor 1 TagFrageWindows 1015 Kommentare

Hallo! Ich bin vor ein paar Tagen wieder von Linux auf Windows umgestiegen. Ich hab die Windows 10 Version 20H2 installiert, wurde von Windows ...

LAN, WAN, Wireless
8 Geräte - verteilen oder auf einen Switch?
DoKi468Vor 23 StundenFrageLAN, WAN, Wireless12 Kommentare

Hallo liebe Admins, eine kurze Frage: Ich habe hier eine FB 6190 Cable stehen sowie einen noch unmonitored switch mit 8 Anschlüssen. Momentan sieht ...

Windows Server
Server-Internetverbindung kurz trennen und wieder aktivieren
gelöst imebroVor 1 TagFrageWindows Server13 Kommentare

Hallo, wir haben im Moment fast täglich immer wieder Ausfälle unserer Internetverbindung. Unser Provider sagt, dass er kein Problem feststellen kann. Aber wenn vom ...

Windows Server
Windows Firewall: Alle öffentliche IPs sperren bis auf eine
SabSchapVor 1 TagFrageWindows Server7 Kommentare

Hallo, wir haben einen Windows 2019 Server. Wir nutzen diesen als Webserver. Nun haben wir die Webadresse www.test.de und möchten diese für alle öffentlichen ...

Netzwerke
Hardware-Firewall - NGFW - UTM für Privatgebrauch
LordVoodooVor 1 TagFrageNetzwerke7 Kommentare

Hallo liebe Community, seit mehreren Wochen beschäftige ich mich nun schon mit dem Thema Hardware-Firewall, ausgelöst durch Begriffe wie UTM / NGFW / Layer-7-DPI. ...

Hardware
Kabelfernsehen in anderen Raum "übertragen" ?
cramtroniVor 1 TagFrageHardware6 Kommentare

Guten Tag zusammen, ich hätte eine Frage und zwar gibt es in unserem Haus nur einen Kabelanschluss (Coax) für das Kabelfernsehen, nun hätte ich ...

Firewall
HTTPS Webfilter ohne Zertifikat möglich?
leon123Vor 1 TagFrageFirewall7 Kommentare

Hallo zusammen, ich suche gerade nach einer Möglichkeit einen Webfilter für ein offenes WLAN zu implementieren. Die meisten Lösungen die ich bisher gefunden habe ...