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
GELÖST

DOS FTP Upload von Dateien in unbekannten Unterordner

Frage Entwicklung Batch & Shell

Mitglied: Cowboy

Cowboy (Level 1) - Jetzt verbinden

18.02.2011, aktualisiert 17:55 Uhr, 5485 Aufrufe, 6 Kommentare

Hi,
habe eine Frage...
und zwar hab ich ne Batch Datei, welche eigentlich Bilder vom Ordner c:\users\%Username%\Pictures\ uploaden soll.
jetzt hab ich folgendes geschrieben:

@ftp -i -s:"%~f0"&GOTO:EOF
open irgendeinServer123.de.funpic.de
Username
Passwort
cd bilder
lcd ..
lcd Pictures
binary
mput *.*
bye

jetzt aber das problem: Die unterordner werden leider nicht mit geuploaded, weil es ja nur dateien uploaded...
hat jemand vielleicht eine lösung?
(ich hab nicht so viel ahnung von den automatisierten DOS :D also IF und sowas kann ich eig gar nich mit umgehen, weswegen es schön wäre, wenn man jede einzelne Zeile für mich erklären könnte und möglichst auch die parameter ... also ich kann ein bisschen Visual Basic, weswegen ihr mir nicht erklären müsst was ne variable ist und was ne variablendeklaration)

schonmal danke im vorraus
Mit freundlichen Grüßen Cowboy

[Edit Biber] Servernamen verallgemeinert [/Edit]^^
Mitglied: bastla
18.02.2011 um 17:27 Uhr
Hallo Cowboy und willkommen im Forum!

Falls ich das richtig verstanden habe, könnte es so gehen:
01.
@echo off & setlocal 
02.
set "Bilder=D:\Pictures" 
03.
 
04.
set "Script=%temp%\upload.txt" 
05.
> "%Script%" echo open Server 
06.
>>"%Script%" echo Username 
07.
>>"%Script%" echo Passwort 
08.
>>"%Script%" echo cd bilder 
09.
>>"%Script%" echo lcd "%Bilder%" 
10.
>>"%Script%" echo binary 
11.
for /f "delims=" %%i in ('dir /b /ad "%Bilder%"') do >>"%Script%" echo mput "%%i" 
12.
>>"%Script%" echo mput *.* 
13.
>>"%Script%" echo bye 
14.
echo Scriptinhalt: 
15.
type "%Script%" 
16.
pause 
17.
ftp -i -s:"%Script%" 
18.
del "%Script%"
wobei die Zeilen 14 bis 16 nur zum Testen da sind. Es würde sich übrigens anbieten, in Zeile 2 zunächst einen Pfad zu einem Testordner mit nur ein paar Bildern und 2 Unterordnern anzugeben - damit sollte schon deutlich werden, ob der Ablauf Deinen Vorstellungen entspricht.

Nachdem der Inhalt des Scripts auf dem Bildschirm ausgegeben wurde, kannst Du übrigens den tatsächlichen Upload noch per Strg + c bzw Strg + Pause-Taste verhindern ...

Noch eine kurze Erklärung des Ablaufes: Das Upload-Script wird erst zur Laufzeit im Temp-Ordner erstellt (und danach auch wieder gelöscht), damit alle Unterordner einzeln per "mput Ordnername" übertragen werden können. Dazu wird mit der "for /f"-Schleife jeder Unterordner des in %Bilder% stehenden Basispfades abgeklappert - wenn Du das nachvollziehen willst, einfach in einer CMD-Shell
for /f "delims=" %i in ('dir /b /ad "D:\Bilder"') do echo mput "%i"
eingeben - dabei wird nur eine Bildschirmausgabe erzeugt und nix erstellt oder hochgeladen. Bitte beachten: In einem Batch werden für Laufvariable einer Schleife (hier: %%i) 2 Prozentzeichen geschrieben, bei Direkteingabe an der Kommandozeile nur eines.

Grüße
bastla

P.S.: Die Zeile 5 musst Du natürlich an den Namen Deines Servers (den ich ganz nebenbei nicht hier veröffentlichen würde) anpassen ...
Bitte warten ..
Mitglied: Cowboy
18.02.2011 um 21:48 Uhr
funktioniert leider nicht... es ladet trotzdem nur die bilder im hauptordner hoch...
also beim laden des Ordners Test231 kommt dann
ftp> mput "Test231"
"Fehler beim laden der lokalen Datei ???1."

ich denke, dass der fehler bei der zeile
for /f "delims=" %%i in ('dir /b /ad "%Bilder%"') do >>"%Script%" echo mput "%%i"
liegt... vielleicht eine andere variable als "%%i"...
hier das hier hab ich auch noch gefunden... weil "%%i" dann im kompletten pfad als "C:\Users\%Username%\Pictures\"Test231"\" angezeigt werden würde, was fehler hervorrufen würde...
aber wie ich das genau verändern muss weiss ich auch nicht genau
Bitte warten ..
Mitglied: bastla
18.02.2011 um 21:59 Uhr
Hallo Cowboy!
vielleicht eine andere variable als "%%i"...
... bringt genau keinen Unterschied ...
weil "%%i" dann im kompletten pfad als "C:\Users\%Username%\Pictures\"Test231"\" angezeigt werden würde, was fehler hervorrufen würde...
Wird es aber nicht, was Du leicht nachvollziehen kannst, indem Du einen Blick in das (genau zu diesen Testzwecken angezeigte) Skript wirfst (oder einfach nur die Zeile
ftp> mput "Test231"
richtig interpretierst) ...
aber wie ich das genau verändern muss weiss ich auch nicht genau
No problem, musst Du ohnehin nicht ...
Vermutlich (ich habe das nicht getestet) wird mit
mput "Test231"
eben nicht, wie geplant, der Ordner übertragen, sondern "Test231" als Dateiname interpretiert, obwohl im Web die Behauptung
"Windows ftp client can do folders. Just do mput <foldername>"
zu finden war ...
Na gut, dann eben ganz ausführlich:
01.
@echo off & setlocal 
02.
set "Bilder=D:\Pictures" 
03.
 
04.
set "Script=%temp%\upload.txt" 
05.
> "%Script%" echo open Server 
06.
>>"%Script%" echo Username 
07.
>>"%Script%" echo Passwort 
08.
>>"%Script%" echo cd bilder 
09.
>>"%Script%" echo lcd "%Bilder%" 
10.
>>"%Script%" echo binary 
11.
for /f "delims=" %%i in ('dir /b /ad "%Bilder%"') do ( 
12.
    echo mkdir "%%i" 
13.
    echo cd "%%i" 
14.
    echo mput "%%i\*.*" 
15.
    echo cd .. 
16.
)>>"%Script%" 
17.
>>"%Script%" echo mput *.* 
18.
>>"%Script%" echo bye 
19.
echo Scriptinhalt: 
20.
type "%Script%" 
21.
pause 
22.
ftp -i -s:"%Script%" 
23.
del "%Script%"
Grüße
bastla
Bitte warten ..
Mitglied: Cowboy
19.02.2011 um 10:59 Uhr
Vielen Dank...
es hat jetzt geklappt... bis auf die parameter /f, /b, /ad... hab ich das programm sogar verstanden
wo lernt man sowas? ich würd auch gerne ein bisschen mehr mit skripts in den batchdateien arbeiten können...

aber sonst ist das problem gelöst^^ kann ich auch gut dafür verwenden, wenn ich an ner homepage schreibe oder so
Bitte warten ..
Mitglied: bastla
19.02.2011 um 11:26 Uhr
Hallo Cowboy!

Freut mich, wenn's jetzt klappt ...
bis auf die parameter /f, /b, /ad... hab ich das programm sogar verstanden
Kannst Du ja einfach nachlesen: "dir /?", "for /?" - und dazu auch das passende Tutorial ...
wo lernt man sowas?
Na hier natürlich (und ansonsten, wie so vieles, by doing) ...

Grüße
bastla
Bitte warten ..
Mitglied: Cowboy
19.02.2011 um 14:42 Uhr
thx nochmal für den link ^^
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell FTP-Upload schlägt fehl (2)

Frage von Johnny-CGN zum Thema Batch & Shell ...

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

Frage von Marlon1 zum Thema Batch & Shell ...

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

Frage von highpriest zum Thema Linux Tools ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...