robocmd
Goto Top

FTP Batch Ordner kopieren

Hallo liebe Community,

ich habe ein kleines Problem. Ich habe eine Batchdatei erstellt welche beim ausführen ein Ordner auf den FTp Server hochladen soll. Das Problem ist das man den normalen Befehl wie put, mput oder send nicht funktioniert da es sich um keine Datei sonder ein Verzeichnis handelt. Ich weiß nun auch nicht was ich machen soll, da leider wput nicht funktioniert. Habt ihr eine Idee welch anderer Befehl gehen würde?

Content-Key: 219212

Url: https://administrator.de/contentid/219212

Printed on: April 23, 2024 at 18:04 o'clock

Member: rubberman
rubberman Oct 12, 2013 at 20:42:47 (UTC)
Goto Top
Hallo RoboCMD, willkommen im Forum.

Wenn das Verzeichnis auch auf dem FTP Server erstellt werden soll, dann mache das vorher mit mkdir und lade danach nur die Dateien mit mput hoch. Falls aber das Verzeichnis anschließend auch wieder als Verzeichnis heruntergeladen werden soll, funktioniert das nicht. In dem Fall zippe es vorher ein und lade die Zipdatei hoch.

Grüße
rubberman
Member: RoboCMD
RoboCMD Oct 12, 2013 at 20:54:29 (UTC)
Goto Top
Es steht leider immer da Datei nicht gefunden :c Könnte man es automatisieren also das er es gleich in eine ZIP packt sowie entpackt?
Member: rubberman
rubberman Oct 12, 2013 at 21:17:56 (UTC)
Goto Top
Hallo RoboCMD,

dazu brauchst du ein zusätzliches Tool (zB. 7-Zip) das du über die Kommandozeile ansteuern kannst.

Grüße
rubberman
Member: colinardo
colinardo Oct 13, 2013 updated at 09:36:55 (UTC)
Goto Top
Hallo RoboCMD,
ohne zusätzliche Tools geht es, wie @rubberman schon schreibt so: Verzeichnis auf dem FTP-Server erstellen und die Dateien mit mput hochladen. damit während der FTP-Phase keine interaktiven abfragen kommen, muss mit dem Befehl prompt der interaktive Modus abgestellt werden.

Beispiel wie es aussehen könnte: (In Zeile 18 legst du fest welche Dateien hochgeladen werden sollen, du kannst hier mit Wildcards arbeiten, aber keine Ordner angeben sondern nur Dateien)
@echo off & setlocal 
set ftpscript=ftp.script
set FTPSERVER=ftp.deinhost.de
set USERNAME=RoboCMD
set PASSWORD=geheim
set FTPFOLDER=/ordner/unterordner

REM ##### ERSTELLE FTP-SCRIPT ######
echo prompt>>%ftpscript%
echo binary>>%ftpscript%
echo open %FTPSERVER%>>%ftpscript%
echo %USERNAME%>>%ftpscript%
echo %PASSWORD%>>%ftpscript%
echo mkdir %FTPFOLDER%>>%ftpscript%
echo cd %FTPFOLDER%>>%ftpscript%

REM ####Hier die Befehle für den Upload der Dateien
echo mput "c:\temp\*.*">>%ftpscript%  

echo quit>>%ftpscript%

ftp -s:%ftpscript%
del /q %ftpscript%
Das ganze könntest du dann so weit treiben das du mit for-Schleifen dein Quell-Verzeichnis rekursiv auf Unterordner untersuchst und das dann Schritt für Schritt in das FTP-Script mit einbaust. Also möglich ist es ohne Zusatztools, aber ob der Aufwand es wert ist, wenn es z.B. mit WinSCP wesentlich einfacher geht ?
Grüße Uwe
Member: jsysde
jsysde Oct 13, 2013 at 09:40:45 (UTC)
Goto Top
Moin moin,

wenn ich nicht irre kann z.B. WinSCP solche Aktionen ausführen, das lässt sich aus einer Batch heraus prima triggern. Dito für 7-Zip (7za.exe ist die Command-Line Version).
Oder kannst/darfst du keine externen Programme nutzen?
Die FTP-Befehle innerhalb der CMD sind doch stark eingeschränkt....

Cheers,
jsysde