klaus20
Goto Top

FTP Upload mit Variablen

Guten Abend, vielleich kann mir jemand bei FTP Problem helfen.

Mein Vorhaben:
Ich möchte die Datei "test.zip" mit dem aktuellen Datum und Zeit versehen
und auf den FTP Server in das Unterverzeichnis Save kopieren.

Mein bisheriges erfolgloses)Vorgehen:

ftp1.bat

*
SET "ozeit=%time: =0%"
SET mzeit1=%ozeit:~0,2%:%ozeit:~3,2%:%ozeit:~6,2%
SET mzeit2=%ozeit:~0,2%.%ozeit:~3,2%
SET datum0=%DATE:* =%
SET datum=%datum0:~0,2%.%datum0:~3,2%.%datum0:~8,2%
SET name=test.zip
SET name1=%datum%-%mzeit2%-%name%

ftp
open Testserver.de
Save
Save
put %name% Tag/%name1%
bye
*

Die ftp Befehle klappen zwar im CMD Fenster, allerdings werden die
Variablen nicht übernommen.
Nur leider nicht in der bat.
Bin nun den ganzen Tag am testen aber leider ohne brauchbares Ergebnis
Habe auch die Forum Hilfe mit ftp put und mput bemüht allerdings auch
ohne Erfolg.
Möglicherweise sehe ich mittlerweile auch den Wald vor lauter Bäumen
nicht.

Viele Grüße Klaus

Content-ID: 205749

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

bastla
bastla 27.04.2013 um 22:17:27 Uhr
Goto Top
Hallo Klaus20!

Erstelle zuerst (im Batch) eine Script-Datei mit den benötigten ftp-Befehlen verwende dann
ftp -s:Script.txt
- ein Beispiel findest zu zB hier.

Grüße
bastla
Klaus20
Klaus20 28.04.2013 aktualisiert um 11:29:37 Uhr
Goto Top
Hallo bastla
erst mal Danke für die Hilfe.
So das erste mal daß ich ein brauchbares Ergebnis habe.
Habe wie in Deinem Link beschrieben folgendes gemacht:

Daten.ftp mit folgenden Inhalt erstellt:
www.mein.server.de
username
passwort

test.bat mit folgenden Inhalt erstellt:

SET "ozeit=%time: =0%"
SET mzeit1=%ozeit:~0,2%:%ozeit:~3,2%:%ozeit:~6,2%
SET mzeit2=%ozeit:~0,2%.%ozeit:~3,2%
SET datum0=%DATE:* =%
SET datum=%datum0:~0,2%.%datum0:~3,2%.%datum0:~8,2%
SET name1=praxis_tag.zip
SET name1a=%datum%-%mzeit2%-%name1%
SET name2=kkneu.zip
SET name2a=%datum%-%mzeit2%-%name2%
SET name3=kkdat.zip
SET name3a=%datum%-%mzeit2%-%name3%

echo OPEN www.mein.server.de > %temp%\daten.ftp
echo USER username passwort >> %temp%\daten.ftp
echo Save >> %temp%\daten.ftp
echo put %name1% Tag/%name1a%>> %temp%\daten.ftp
echo put %name2% kkneu/%name2a%>> %temp%\daten.ftp
echo put %name3% kkneu/%name3a%>> %temp%\daten.ftp
echo disconnect >> %temp%\daten.ftp
echo quit >> %temp%\daten.ftp
pause
ftp.exe -n -i -s:%temp%\daten.ftp

Ergebis:
ftp> OPEN www.mein.server.de
Verbindung mit www.mein.server.de wurde hergestellt.
220-FTP server ready.
ftp> USER username passwort
331 Password required for username
230 User username logged in
ftp> send 28.04.13-09.05-praxis_tag.zip
200 PORT Command sucessfull
150 Opening ASCI mode data connection for"28.04.13-09.05-praxis_tag.zip".
226 transfer complete
FTP: 11 byte gesenden in ...
ftp> disconnect
221-Goodbye.
ftp> quit

Geschaft mittlerweile klappt alles.
Was mich noch interessieren würde - was bewirkt >> %temp%\daten.ftp ??
Worin besteht der Unterschied zwischen disconnect quit und bye ??

Viele Grüße

Klaus
Skyemugen
Skyemugen 30.04.2013 aktualisiert um 16:58:17 Uhr
Goto Top
Öffne doch mal die daten.ftp mit dem Editor, dann wirst du vermutlich selbst darauf kommen, was >>%temp%\daten.ftp mit den vorangehenden (echo)An- bzw. Ausgaben macht ;)

disconnect - ist doch logisch ;) trennt die aktuelle FTP-Verbindung, beendet aber nicht die FTP-Session
bye und quit sind identische Befehle zum Beenden der FTP-Session
Klaus20
Klaus20 01.05.2013 aktualisiert um 12:31:53 Uhr
Goto Top
Gute Morgen,
so nun ist einiges wieder verständlicher - Vielen Dank.

Allerdings habe ich nun noch zwei Probleme:

Bekomme momentan folgende Meldungen (Windows XP):
425 can't build data connection connection refused
Hier wird nichts kopiert. Bin allerdings der Meinung daß es schon mal ging, habe nur keine Ahnung warum nicht mehr. Download mit WGET geht einwandfrei.

Habe im Forum oder bei Google auch noch keine FTP.exe Lösung gefunden ??
Lediglich NcFTP ??
Kann ich den Upload auch mit WPUT / Robocopy realisieren ??

Auf einem anderen Computer (Windows 7):
226 -Warning 253 321 bare linefeeds receiced in ASCII Modus

File may not have transferred correctly
226 Transfer comlete.
Hier wurde alles korrekt kopiert - Ich weiß nur mit der Meldung nichts anzufangen ?

Update:
So nun habe ich die WPUT Lösung - Vielleicht braucht es der eine oder andere.
SET "ozeit=%time: =0%"
SET mzeit1=%ozeit:~0,2%:%ozeit:~3,2%:%ozeit:~6,2%
SET mzeit2=%ozeit:~0,2%.%ozeit:~3,2%
SET datum0=%DATE:* =%
:: Unter XP wird auch der Wochentag angezeigt
:: echo %date% unter XP 03.04.2011
:: unter Windows 7 ??
SET datum=%datum0:~0,2%.%datum0:~3,2%.%datum0:~8,2%
SET name0=praxis_monat.zip
SET name0a=%datum%-%mzeit2%-%name0%
SET name1=praxis_tag.zip
SET name1a=%datum%-%mzeit2%-%name1%
SET name2=kkneu.zip
SET name2a=%datum%-%mzeit2%-%name2%
SET name3=kkdat.zip
SET name3a=%datum%-%mzeit2%-%name3%
SET nameftp= ftp://Save:Save@namedes.servers
for %%i in (%name0%) do for /f %%d in ("%%~ti") do set "Dat1=%%d"
if "%Dat1%"=="%datum0%" ( goto :monat ) else ( goto :tag )
:tag
wput %name1% %nameftp%/Tag/%name1a%
:monat
wput %name0% %nameftp%/Monat/%name0a%
wput %name2% %nameftp%/kkneu/%name2a%
wput %name3% %nameftp%/kkneu/%name3a%

Vielleicht kann mir aber doch noch jemand was zu den Fehlermeldungen sagen ??

Viele Grüße

Klaus
Klaus20
Klaus20 11.05.2013 aktualisiert um 18:17:29 Uhr
Goto Top
Wie kann ich prüfen ob überhaupt eine Verbindung zustande kommt bzw. ob der Upload geht ??

Viele Grüße

Klaus