Gerne werden in Kennwörtern Sonderzeichen verwendet. Damit das dann via Batch-Skript in Verbindung mit WinSCP funktioniert, muss man diese umwandeln und eine Kleinigkeit beachten.

Ohne Sonderzeichen würde man eine Session-URL so schreiben:

ftp://username:meinkennwort@domain.tld

Kommt jetzt beispielsweise ein “+” ins Spiel funktioniert folgende Schreibweise nicht im Batch-Skript bzw. genauer ausgedrückt dann bei der “WinSCP.com” :

ftp://username:mein+kennwort@domain.tld

Die Authentifizierung scheitert und man kassiert ein “Access denied”.

Das “+”-Zeichen muss konvertiert werden. Gemäss der Anleitung bei WinSCP (siehe Quelle) wird dann “%2B” daraus:

ftp://username:mein%2Bkennwort@domain.tld

Gibt man diese Zeile via “echo…” aus, verschwindet allerdings das “%” und die Anmeldung scheitert erneut:

ftp://username:mein2Bkennwort@domain.tld

Das erste “%” wird seitens CMD als Einleitung für einen Parameter verstanden und folglich sozusagen geschluckt. Daher müssen es zwei “%%” sein:

ftp://username:mein%%2Bkennwort@domain.tld

Nun klappt’s auch mit einem vorangestelltem “echo”:

echo ftp://username:mein%%2Bkennwort@domain.tld > winscp.txt

Übergibt man nun die “winscp.txt” an WinSCP.com (“WinSCP.com /script=winscp.txt”),  es müssen/sollten natürlich noch weitere Angaben enthalten sein, funktioniert die Anmeldung.

Quelle:

WinSCP – Documentation – Features – Session URL