ziiepe
Goto Top

WinSCP-Befehl direkt ausführen

Sooo.....im Rahmen eines kleinen Tools zum sichern des Backups auf eine externe Platte greife ich per WinSCP auf den Server zu, auf dem alles Backups gespeichert werden.
Das Tool wird mit AutoIt(ich nenns kurz AIt) erstellt.

Da mir AIt nun aber noch n paar mehr Infos geben und besser auf Probleme reagieren kann, muss ich über Run (AIt ruft herbei den gleichnamigen WIndowsbefehl auf) WinSCP den kompletten Befehl in einem String mit geben.

Theoretisch und praktisch müsste der Befehl ja so aus sehen: "c:\program files\winscp\winscp.com" /command "open "user@server""(bis dahin klappt alles) "get "/mnt/500GB/Server011/full/Cobian Backup 9 2010-03-01 04-14-20 " "c:\2010-03-03\""

ab dem get treten bei mir folgende probleme auf:

1.) kommt nach dem /full/ entweder gleich eine Datei oder ein Ordner ohne Leerzeichen im Namen zickt mir WinSCP am Zielordner rum, dass er nicht gefunden werden kann
2.) ist der Pfad genauso wie der oben genannte, dann "sieht" WinSCP alles bis zum ersten Leerzeichen und danach gibt WinSCP mir die Fehler, dass diese Befehle nicht erkannt werden. Hier hab ich schon mit allen möglichen "" und '' Varianten gespielt.


Hoffentlich kann mir irgendwer so schnell wie möglich helfen.

Patrick

Content-ID: 137397

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

Ausgedruckt am: 23.11.2024 um 12:11 Uhr

76109
76109 04.03.2010 um 11:33:00 Uhr
Goto Top
Hallo Patrick!

Versuchs mal so:
"""c:\program files\winscp\winscp.com"" /command open ""user@server"" get ""/mnt/500GB/Server011/full/Cobian Backup 9 2010-03-01 04-14-20"" ""c:\2010-03-03\"""

Gruß Dieter
Ziiepe
Ziiepe 04.03.2010 um 11:46:47 Uhr
Goto Top
Leider klappt das auch nicht =(
76109
76109 04.03.2010 um 12:39:13 Uhr
Goto Top
Hallo Ziiepe

Und so:
""c:\program files\winscp\winscp.com" "/command open" "user@server" get "/mnt/500GB/Server011/full/Cobian Backup 9 2010-03-01 04-14-20" "c:\2010-03-03\""
Ansonsten, weiß ich auch nicht weiterface-wink

Gruß Dieter

PS. Eventuell doch oben zusätzlich mit ""/command open""
Ziiepe
Ziiepe 04.03.2010 um 14:55:42 Uhr
Goto Top
Leider hilft mir das auch nicht

Hab selber nochmals damit rumgespielt und bei diesem code erhalte ich "lediglich nur noch die meldung dass der pfad
/mnt/1200GB/001/full/backup nicht gefunden werden kann (was ja auch logisch ist).
kann es sein dass ich irgendwo noch nen denkfehlre beim setzten der " habe??

"c:\program files\winscp\winscp.com" /command "open "root@srvxxx.intra.xxxxx.de"" "get ""/mnt/1200GB/001/full/backup 2010-03-02 03-55-54/"" c:\2010-03-03\"
76109
76109 04.03.2010 um 15:20:07 Uhr
Goto Top
Hallo Ziiepe!

Versuch doch mal eine kleine Batch mit Echo-Ausgabe und sieh Dir das Ergebnis an
@echo off
Echo.
Echo "c:\program files\winscp\winscp.com" /command "open "root@srvxxx.intra.xxxxx.de"" "get ""/mnt/1200GB/001/full/backup 2010-03-02 03-55-54/"" c:\2010-03-03\"  

Gruß Dieter
Ziiepe
Ziiepe 04.03.2010 um 15:36:20 Uhr
Goto Top
Hallo Dieter

"c:\program files\winscp\winscp.com" /command "open "root@srvxxx.intra.xxxxx.de"" "get ""/mnt/1200GB/001/full/backup 2010-03-02 03-55-54/"" c:\2010-03-03\"

Das ist mein Ergebnis.

Gruß Patrick
Ziiepe
Ziiepe 04.03.2010 um 17:16:30 Uhr
Goto Top
Was mich aber am meisten verweifeln lässt, ist die Tatsache, dass ich es eigentlich genau so mache, wie es auf der offiziellen WinSCP Seite beschrieben ist.
Die nehmen in ihren Beispielen halt den put Befehl aber da sagen die, dass, wenn der Name Leerzeichen enthält dieser in 2 " gesetzt werden muss als ""das ist pfad"".
Und das mach ich ja schon die ganze Zeit
76109
76109 04.03.2010 um 18:14:53 Uhr
Goto Top
Hallo Ziiepe!

Das Problem ist, dass ich weder AutoIt noch WinSCP kenne und es mir daher etwas schwerfällt, wie die Syntax aufgeteilt sein soll, sprich was gehört wie zusammen.

Das die "" doppelt angegeben werden müssen, bedeutet, dass diese bei 1-Zeichen als Stringzeichen gewertet wird und bei 2-Zeichen hintereinander als Zeichen. Dabei verliert man je nach Verschachtelung sehr leicht den Überblick.

Zum besseren Verständnis hier eine einfache Pfad und Parameterübergabe:
"""c:\program files\winscp\winscp.com"" /Command"

Ergebnis:
"c:\program files\winscp\winscp.com" /command

Gruß Dieter
Ziiepe
Ziiepe 04.03.2010 um 18:18:12 Uhr
Goto Top
Naja....hab jetzt rausgefunden, dass weniger WinSCP sondern eher irgendwo die Kommandozeile damit ein Problem hat dass das Leerzeichen sind.

Trotzdem danke wür deine Hilfe Dieter
76109
76109 04.03.2010 um 19:08:16 Uhr
Goto Top
Hallo Patrick!

Wegen den Leerzeichen, die ja eigentlich nur in Pfadangaben vorkommen, müssen alle Pfadangaben innerhalb des Strings in DoppelQuote gesetzt werden.

Beispiel:
"""c:\program files\winscp\winscp.com"" /Command ""Pfad mit Leerzeichen"" TextOhneLeerzeichen ""Wieder Pfad mit Leerzeichen"""
Ergebnis:
"c:\program files\winscp\winscp.com" /Command "Pfad mit Leerzeichen" TextOhneLeerzeichen "Wieder Pfad mit Leerzeichen"

Gruß Dieter
RWolff
RWolff 07.04.2010 um 13:13:44 Uhr
Goto Top
Hallo zusammen.

Ich stehe auch gerade vor der Aufgabe mit WinSCP.com ein Batch Ablauf zu machen.
Ist es möglich, das Passwort zu verschlüsseln oder sonst irgendwie "unsichtbar" zu setzen?

Das Ganze findet unter Windows statt.

Vielen Dank.

Grüße

Rolf