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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137397
Url: https://administrator.de/contentid/137397
Ausgedruckt am: 23.11.2024 um 12:11 Uhr
11 Kommentare
Neuester Kommentar
Hallo Patrick!
Versuchs mal so:
Gruß Dieter
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
Hallo Ziiepe
Und so:
Ansonsten, weiß ich auch nicht weiter
Gruß Dieter
PS. Eventuell doch oben zusätzlich mit ""/command open""
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\"" |
Gruß Dieter
PS. Eventuell doch oben zusätzlich mit ""/command open""
Hallo Ziiepe!
Versuch doch mal eine kleine Batch mit Echo-Ausgabe und sieh Dir das Ergebnis an
Gruß Dieter
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
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:
Ergebnis:
Gruß Dieter
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
Hallo Patrick!
Wegen den Leerzeichen, die ja eigentlich nur in Pfadangaben vorkommen, müssen alle Pfadangaben innerhalb des Strings in DoppelQuote gesetzt werden.
Beispiel:
Ergebnis:
Gruß Dieter
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""" |
"c:\program files\winscp\winscp.com" /Command "Pfad mit Leerzeichen" TextOhneLeerzeichen "Wieder Pfad mit Leerzeichen" |
Gruß Dieter