PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Via Bat komplette Ordner hochladen



Rexo
18.10.2011, 16:16
Hey,

ich möchte mit einer .bat und einer .ftp Datei alle Ordner eines Verzeichnises hochladen. Der Code von der .ftp sieht momentan aus wie folgt:

OPEN ftp.uploaded.to
Beutzername
Passwort
PUT C:\Desktop\*.*
bye

Leider kommt immer die Meldung, dass die Datei "*.*" nicht gefunden werden konnte. Weiß irgendwer wie ich das beheben kann ?
Connecten usw. läuft einwandfrei.

Danke.

loewenherz
18.10.2011, 17:05
Mit MPUT kannst du mehrere Dateien hochladen, ich weiß grad nicht ob es Wildcardfähig ist, denke aber eher nicht.
Ansonsten musst du dir eben eine kleine Schleife in der Batchdatei zurecht basteln.

Rexo
18.10.2011, 17:45
mput geht nicht, die BAT sieht momentan so aus:

ftp -s:dieftpdatei.ftp
pause

und bis ich alles selber eingetippt hab hab ich es schon alles via filezilla oben. Hat sonst niemand Ideen ?

loewenherz
18.10.2011, 17:57
Muss es den unbedingt Batch sein? Was hast du den vor?

Rexo
18.10.2011, 18:02
Es muss nicht batch sein, ich will einfach mit einem Klick, oder auch mit 2, alle Dateien in einem Ordner auf einem ftp zu platzieren.

loewenherz
18.10.2011, 18:12
Dann benutz die Powershell. Der Standartftp Client ist nicht für Stabelverarbeitung geschaffen.

Powershell unterstützt von Haus aus auch nur den Standart FTP Client aber mit den Netcmdlet(http://www.powershellinside.com/download/) gibt es das Script send-ftp dazu.

Mit dem PSScript da unten kannst du dann einen Verzeichnisinhalt rekrusiv hochladen.


param( [string] $dir = "C:\Testing\FTPTest\" )
$files = (get-childitem $dir -r)
foreach ($file in $files) {
$remfilename = $file.FullName.Replace($dir, "")
$remfilename = $remfilename.Replace("\", "/")
if ($file.Attributes -eq "Directory") {
send-ftp -server MYSERVER -user TEST -password TEST -create $remfilename
}
else {
send-ftp -server MYSERVER -user TEST -password TEST -localfile $file.FullName -remotefile $remfilename
}
Write-Host $remfilename
}