niphar
Goto Top

Batch ftp upload

Problem beim uploaden mit unterverzeichnissen

Guten Abend zusammen

ich hab folgendes Problem:

Ich will auf einem PC ohne Adminrechte mehrere Ordner/Unterordner und Dateien (für jede Kalenderwoche einen Ordner in denen jeweils eine "stundenliste_atuser.xls" liegt) per Batch auf einen FTP server hochladen. Dazu hab ich 2 Batchfiles und eine Textdatei die wie folgt ausschaun:

upload.bat:
ftp -s:liste.txt

liste.bat:
@echo off
if exist liste.txt del liste.txt
echo open URL>>liste.txt 
echo USERNAME>>liste.txt 
echo PASSWORD>>liste.txt 
echo prompt>>liste.txt 
echo cd backup>>liste.txt 
dir /b /s D:\ftp\skripte>>liste.txt 
exit

liste.txt
open URL
USERNAME 
PASSWORD
prompt 
cd backup 
D:\ftp\skripte\test
D:\ftp\skripte\to.upload
D:\ftp\skripte\test\test2.txt

damit das ganze natürlich funktioniert sollte die liste.txt wie folgt ausschaun


liste.txt
open URL
USERNAME 
PASSWORD
prompt 
cd backup 
put D:\ftp\skripte\test
put D:\ftp\skripte\to.upload
put D:\ftp\skripte\test\test2.txt

nur bekomm ich das "put" einfach nicht vor die Pfadangaben :/ hat jemand eine Idee dazu?

P.S. ist es möglich, dass ich per batch ermittle in welchen Ordner die datei liegt und diese dann auf dem ftp erstelle? z.B. D:\ftp\skripte\test\test2.txt liegt local auf dem pc und aufm ftp schaut der pfad wie folgt aus: D:\ftp\skripte\, ansonsten schick ich 20 files und überschreib jedesmal die vorherige.

Content-Key: 141093

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

Printed on: April 25, 2024 at 08:04 o'clock

Mitglied: 77559
77559 Apr 21, 2010 at 16:10:09 (UTC)
Goto Top
Hallo Niphar,

um das Put vor die Scripte zu bekommen musst du die Dir Ausgabe mit einer For Schleife abarbeiten.
Ändere Zeile 8 in deiner Liste.bat so ab (ungetestet) :
For /f "delims=" %%A in ('dir /b /s D:\ftp\skripte') Do Echo put %%A >>liste.txt

Zu deinem PS, mögich ist es schon den Quellpfad zu splitten und jeweils einen md/cd Befehl dazwischen einzufügen.

Gruß
LotPings
Member: Niphar
Niphar Apr 22, 2010 at 15:44:44 (UTC)
Goto Top
ok und wie stell ich das an ? wieder mit einer for schleife?
Mitglied: 77559
77559 Apr 22, 2010 at 17:30:19 (UTC)
Goto Top
Nein,
die eine Scheleife reciht, aber der Pfad der zurückgegebenen Dateien muss auf Subverzeichnisse geprüft werden, am Besten in einer Subroutine.
Du schreibst zwar der ftp Zielort wäre d:\ftp\scripte aber du machst selber ein cd backup.

Es ist auch fraglich
  • ob das Recht zur Erzeugung von Verzeichnissen besteht
  • welche Befehle der Remote Ftp-Server beherscht
  • der Ftp-Server absolute/relative Pfadangaben unterstützt

Gruß
LotPings