Top-Themen

Aktuelle Themen (A bis Z)

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

gelöst Bat-Script FTP bestimmte Dateien und Unterordner

Mitglied: SGW-entertainment

SGW-entertainment (Level 1) - Jetzt verbinden

17.10.2011 um 21:49 Uhr, 4335 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


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:
01.
 >%tmp%\files.txt dir /b /s /a-d pfad\*.jpg
02.
>>%tmp%\files.txt dir /b /s /a-d pfad\*.xml
03.
>>%tmp%\files.txt dir /b /s /a-d pfad\*.html
04.
>>%tmp%\files.txt dir /b /s /a-d pfad\*.php
05.
>>%tmp%\files.txt dir /b /s /a-d pfad\*.css
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
01.
pushd pfad
02.
>%tmp%\files.txt dir /b /s /a-d *.jpg *.xml *.html *.php *.css
03.
popd
auch schon genügen sollte) ...
Dem Leerzeichenproblem in Pfad-/Dateinamen solltest Du damit beikommen:
for /f "delims=" %%f in (%tmp%\files.txt) do echo put "%%f">>%tmp%\test.ftp
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 ) 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

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

01.

02.
cd %userprofile%\Pfad\
03.
for /r %%d in (*.jpg) do echo put "%%d">>test.ftp
04.
for /r %%d in (*.html) do echo put "%%d">>test.ftp
05.
for /r %%d in (*.php) do echo put "%%d">>test.ftp
06.
for /r %%d in (*.css) do echo put "%%d">>test.ftp
07.
for /r %%d in (*.log) do echo put "%%d">>test.ftp
08.

09.
cd %userprofile%\\andererPfad\
10.
for /r %%d in (*.xml) do echo put "%%d">>test.ftp
11.
for /r %%d in (*.txt) do echo put "%%d">>test.ftp
12.
Den Ordner kann ich so vorher gut festlegen. Behandelt nun auch die Unterordner. Es kommen nur Dateien mit kompletten Pfad! Leerzeichen werden unterstützt 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:
for /r "%userprofile%\Pfad" %%d in (*.jpg *.html *.php *.css *.log) do echo put "%%d">>test.ftp
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bat Datei Auführen
gelöst Frage von talaihanBatch & Shell1 Kommentar

Hallo, wie kann man es erreichen das eine Bat Datei auf einem Lokalen Rechner ohne Internetzugriff und ohne zugehörigkeit ...

Batch & Shell
Anpassung Script in bat
gelöst Frage von zeroblue2005Batch & Shell5 Kommentare

Hallo Zusammen, wie kann ich diese Reg Datei, in eine Batch einfügen, so dass diese ohne Rückfragen ausgeführt wird? ...

Entwicklung
Hilfe bei .bat script
gelöst Frage von RUBEN123Entwicklung1 Kommentar

Hallo, ich würde gerne erreichen, dass man bei meinem BAT script einen Link aus dem Internet eingibt, der dann ...

Batch & Shell

FTP Datei mit aktuellem Datum Übertragen - Batch Script

Frage von spyware96Batch & Shell10 Kommentare

Hi, ich soll ein Script (Batch-Datei) Schreiben welches folgendes macht: - Ein Backup auf einem Server zu einem .zip-Archiv ...

Neue Wissensbeiträge
Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Tipp von ChriBo vor 7 StundenFirewall

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 1 TagInternet

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 1 TagGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 1 TagGoogle Android2 Kommentare

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Heiß diskutierte Inhalte
Linux Userverwaltung
LogIn Versuche beschränken auf EINEN Versuch
gelöst Frage von GarroshLinux Userverwaltung21 Kommentare

Folgendes Problem Ich habe einen dezidierten Server beim Hoster gemietet, installiert ist Ubuntu 18.04.2 LTS‬ und als Webinterface Plesk. ...

DSL, VDSL
Neuer Glasfaser Anschluss - IPv4-Adressraum
Frage von norre2000DSL, VDSL12 Kommentare

Hallo Zusammen, ich werde meinen Glasfaser Anschluss wechseln und bin beim Ausfüllen des Antrags auf Fragen gestoßen bei denen ...

Internet
Aktuell HP-Support-Seite kaputt?
gelöst Frage von LochkartenstanzerInternet12 Kommentare

Hallo Kollegen, Weiß einer von euch, seit wann die HP-Support-Seite kaputt ist? ) Wollte heute morgen Druckertreiber runterladen und ...

Ubuntu
Exchange Alternative auf Ubuntu
Frage von TELLOUbuntu11 Kommentare

Hi NG, wir müssen für unsere Kleine Firma (5 User) das Email / Kalendersystem neu einrichten. Ich könnte jetzt ...