mpwfg41
Goto Top

FTP-Upload mit WINSCP

Ich möchte mit WINSCP im Befehlszeilenmodus ca. 120 Dateien aus verschiedenen Verzeichnissen auf meinen Webserver hochladen. Die Dateien werden in einer ACCESS-Datenbank nacheinander erzeugt und sofort einzeln hochgeladen.
Ich habe dazu in VBA folgende Routine eingebaut:

Aufruf = "C:\Programme\WinSCP\winscp.com /ini=nul /script=" & ftp_datei  
Shell Aufruf

Die ftp_datei wird dynamisch erzeugt und hat folgenden Inhalt:
open ftp://User:Passwort@Servername/
cd /pfad_auf_dem_Server/
put C:\Pfad\hochzuladende_Datei.xyz
close
exit

Das ganze funktioniert einwandfrei, jedoch werden einzelne Dateien nicht übertragen, die Ursache liegt möglicherweise an Leerzeichen (Blanks) und/oder Umlauten in Verzeichnis- und Dateinamen.
Gibt es eine Möglichkeit, in der ftp_Datei einen Befehl einzugeben, der eine Fehlermeldung ausgibt.

mpwfg41

Content-ID: 2774886181

Url: https://administrator.de/forum/ftp-upload-mit-winscp-2774886181.html

Ausgedruckt am: 13.04.2025 um 20:04 Uhr

Th0mKa
Lösung Th0mKa 14.05.2022 um 01:49:06 Uhr
Goto Top
Zitat von @mpwfg41:
Gibt es eine Möglichkeit, in der ftp_Datei einen Befehl einzugeben, der eine Fehlermeldung ausgibt.

Man kann dem WinSCP Aufruf einen Logging Parameter mitgeben.
https://winscp.net/eng/docs/logging

/Thomas
godlie
Lösung godlie 14.05.2022 um 08:23:09 Uhr
Goto Top
Hallo,

ein kurzer blick in den Syntax von WINSCP Script und du würdest rausgefunden haben, dass man Dateinamen mit Leerzeichen unter "" setzen sollte.

Aber ein Tipp aus der Automation, ersetze alle Leerzeichen durch _ und verzichte auf die besch.... Umlaute, die machen immer wieder Probleme face-smile
mpwfg41
Lösung mpwfg41 14.05.2022 um 18:29:24 Uhr
Goto Top
Danke für den Hinweis auf die Beschreibung, aber das hätte alleine das Problem mit den Umlauten nicht gelöst. Das Umlautproblem beschäftigt mich seit Jahrzehnten, leider ist dieses Programm empfindlich. Ich hatte die Datenübertragung bisher mit ftp.exe gelöst, das aus unerfindlichen Gründen seit ein paar Wochen nicht mehr funktioniert; dabei spielten sowohl Blanks als auch die Umlaute keine Rolle. Da die Dateinamen aus der Datenbank heraus generiert werden, ist eine Vermeidung der Umlaute so ohne weiteres nicht möglich, da in der DB die Begriffe in ordentlicher Schreibweise (mit Umlauten) erfolgen muss. Ich habe jetzt bei der Automation entsprechende Umwandlungen durchgeführt, was einwandfrei funktioniert und auch zukunftsfest ist.