Mehrere Dateien nach Suche mit FOR auf FTP hochladen
Bin eig. mittlerweile recht gut in Batch, aber ich weiss einfach nicht weiter...
Also.... mein Problem!
Ich möchte einen bestimmten Ordner + Unterordner nach einer bestimmten Dateiendung durchsuchen und dann auf einem FTP-Server ein Backup davon anlegen. Soweit klappt auch alles... so sieht mein Code aus:
So, eigentlich klappt das auch, nur das funktioniert irgendwie nicht mit Unterordnern 
Hab schon gegoogelt, Boardsuche auch, hab aber nicht wirklich was Hilfreiches gefunden...
Bin froh über jegliche Hilfe ;)
Ach ja, *FTP-SERVER*, *USERNAME* und *PASSWORT* hab ich in meinem Script natürlich durch die richtigen Werte ersetzt!
LG Nanairo
Ich möchte einen bestimmten Ordner + Unterordner nach einer bestimmten Dateiendung durchsuchen und dann auf einem FTP-Server ein Backup davon anlegen. Soweit klappt auch alles... so sieht mein Code aus:
@echo off
ECHO OPEN *FTP-SERVER*>connect.txt
ECHO *USERNAME*>>connect.txt
ECHO *PASSWORT<*>>connect.txt
ECHO PROMPT>>connect.txt
ECHO PUT *.txt>>connect.txt
ECHO QUIT>>connect.txt
SET PFAD=C:\Users\%USERNAME\Desktop\ENT
SET FILE=*.txt
FOR /R %PFAD% %%i IN (%FILE%) DO (ftp -s:connect.txt)
Hab schon gegoogelt, Boardsuche auch, hab aber nicht wirklich was Hilfreiches gefunden...
Bin froh über jegliche Hilfe ;)
Ach ja, *FTP-SERVER*, *USERNAME* und *PASSWORT* hab ich in meinem Script natürlich durch die richtigen Werte ersetzt!
LG Nanairo
4 Antworten
- LÖSUNG bastla schreibt am 14.10.2011 um 23:19:19 Uhr
- LÖSUNG Nanairo schreibt am 15.10.2011 um 10:50:50 Uhr
- LÖSUNG bastla schreibt am 15.10.2011 um 11:01:02 Uhr
- LÖSUNG Nanairo schreibt am 15.10.2011 um 11:30:21 Uhr
- LÖSUNG bastla schreibt am 15.10.2011 um 11:01:02 Uhr
- LÖSUNG Nanairo schreibt am 15.10.2011 um 10:50:50 Uhr
LÖSUNG 14.10.2011 um 23:19 Uhr
Hallo Nanairo und willkommen im Forum (ich tendiere, wie Du merkst, zu einer eher konventionellen Begrüßung -"Also.... " ist mir nicht wirklich geläufig)!
Wenn ich Dein Vorhaben richtig interpretiere, könnte ich mir das eher so vorstellen:
- das Testen überlasse ich Dir ...
Grüße
bastla
Wenn ich Dein Vorhaben richtig interpretiere, könnte ich mir das eher so vorstellen:
@echo off & setlocal
set "Pfad=%userprofile%\Desktop\ENT"
set Script=%temp%\connect.txt
>%Script% ECHO OPEN *FTP-SERVER*
>>%Script% ECHO *USERNAME*
>>%Script% ECHO *PASSWORT*
>>%Script% ECHO PROMPT
>>%Script% ECHO PUT *.txt
>>%Script% ECHO QUIT
pushd "%Pfad%"
for /f "delims=" %%i in ('dir /s /b /ad') do (
pushd "%%i"
ftp -s:%Script%
popd
)
popd
del %Script%
Grüße
bastla
LÖSUNG 15.10.2011 um 10:50 Uhr
Hey,
ja, Begrüßung von mir war nicht grad die tollste, aber ich war gestern Abend schon ziemlich müde... Ach, und danke für dein "willkommen"!
Zum Thema:
Es funktioniert! Allerdings nur einmal. Sprich er kopiert nur eine Datei aus einem Unterverzeichniss auf den FTP-Server. Ich kann mit Batch eigentlich nur die ganz einfachen Sachen wie kopieren, verschieben Texte ausgeben usw... Also habe ich keinen Plan, wieso das nicht funktioniert... Vielleicht kannst du mir ja nochmal helfen ;)
LG Nanairo
ja, Begrüßung von mir war nicht grad die tollste, aber ich war gestern Abend schon ziemlich müde... Ach, und danke für dein "willkommen"!
Zum Thema:
Es funktioniert! Allerdings nur einmal. Sprich er kopiert nur eine Datei aus einem Unterverzeichniss auf den FTP-Server. Ich kann mit Batch eigentlich nur die ganz einfachen Sachen wie kopieren, verschieben Texte ausgeben usw... Also habe ich keinen Plan, wieso das nicht funktioniert... Vielleicht kannst du mir ja nochmal helfen ;)
LG Nanairo
LÖSUNG 15.10.2011 um 11:01 Uhr
Hallo Nanairo!

Die folgende Variante schreibt vorweg alle zu kopierenden Dateien in das Script:
wobei allerdings alle Dateien auf dem Server im gleichen Verzeichnis landen (was bei Deinem Ansatz aber auch nicht anders gewesen wäre) ...
Wenn Du übrigens in Zeile 14 eine "pause" einbaust (oder das Löschen des Scripts am Ende - vorerst - weglässt), kannst Du das gesamte Script auch kontrollieren ...
Grüße
bastla
Ich kann mit Batch eigentlich nur die ganz einfachen Sachen
Hatte ich nach "Bin eig. mittlerweile recht gut in Batch" nicht angenommen ... Die folgende Variante schreibt vorweg alle zu kopierenden Dateien in das Script:
@echo off & setlocal
set "Pfad=%userprofile%\Desktop\ENT"
set Script=%temp%\connect.txt
>%Script% ECHO OPEN *FTP-SERVER*
>>%Script% ECHO *USERNAME*
>>%Script% ECHO *PASSWORT*
pushd "%Pfad%"
>>%Script% (for /f "delims=" %%i in ('dir /s /b /a-d *.txt') do ECHO PUT "%%i")
popd
>>%Script% ECHO QUIT
ftp -s:%Script%
del %Script%
Wenn Du übrigens in Zeile 14 eine "pause" einbaust (oder das Löschen des Scripts am Ende - vorerst - weglässt), kannst Du das gesamte Script auch kontrollieren ...
Grüße
bastla
LÖSUNG 15.10.2011 um 11:30 Uhr
Hey,
mit dem "Bin eig. mittlerweile recht gut in Batch" meinte ich, das ich mir so halbwegs alle Befehle merken kann... Ich hab nämlich sonst immer Probleme beim Auswendiglernen und schreib mir die Befehle immer alle auf ;) Die meisten Batch-Befehle kann ich jetzt aber auswendig, deswegen (mit AutoIT die einzige Programmiersprache, bei der ich nicht immer nachgucken muss ;) ).
So, genug offtopic ;)
Das Script funktioniert wunderbar! Danke! Nur jetzt hab ich gefühlte 1000 Textdateien auf meinem FTP-Server ;) Sowas sollte man Testweise nicht auf C: laufen lassen
Ich hack das dann mal als gelöst ab!
LG Nanairo
PS: Es waren genau 1.012 Textdateien !
mit dem "Bin eig. mittlerweile recht gut in Batch" meinte ich, das ich mir so halbwegs alle Befehle merken kann... Ich hab nämlich sonst immer Probleme beim Auswendiglernen und schreib mir die Befehle immer alle auf ;) Die meisten Batch-Befehle kann ich jetzt aber auswendig, deswegen (mit AutoIT die einzige Programmiersprache, bei der ich nicht immer nachgucken muss ;) ).
So, genug offtopic ;)
Das Script funktioniert wunderbar! Danke! Nur jetzt hab ich gefühlte 1000 Textdateien auf meinem FTP-Server ;) Sowas sollte man Testweise nicht auf C: laufen lassen
Ich hack das dann mal als gelöst ab!
LG Nanairo
PS: Es waren genau 1.012 Textdateien !