Guten Tag!
_RunDos('C:\Program Files (x86)\WinSCP>winscp.com /command "option batch abort" "option confirm off" "open server@test.com" "put c:\test.txt /cygdrive/c/" "exit"')
klappt nicht, warum nicht? ( ?
Gruss,
Automatisator
Guten Tag!
_RunDos('C:\Program Files (x86)\WinSCP>winscp.com /command "option batch abort" "option confirm off" "open server@test.com" "put c:\test.txt /cygdrive/c/" "exit"')
klappt nicht, warum nicht? ( ?
Gruss,
Automatisator
Eher so:
[autoit]_RunDos('"C:\Program Files (x86)\WinSCP\winscp.com" /command "option batch abort" "option confirm off" "open server@test.com" "put c:\test.txt /cygdrive/c/" "exit"')
[/autoit]Danke für die schnelle Antwort
klappt aber leider auch nicht...
1. "\WinSCP>winscp.com" könnte "\WinSCP\winscp.com" sein
2. Pfad "C:\Program Files (x86)\WinSCP" existiert nicht
3. "winscp.com" liegt nicht in dem Pfad
4. Server "server@test.com" gibt es nicht
5. Quell-Datei "c:\test.txt" fehlt
6. Zielpfad "/cygdrive/c/" existiert nicht, wird aber nicht automatisch angelegt
An obigem siehst Du, es kann an vielem liegen. Etwas mehr Infos sind schon notwendig.
Funktioniert die Programmzeile in einer Kommandozeile ? Bzw. welche Fehlermeldung
kommt in der Kommandozeile oder unter AutoIt ?
Ein wenig tun musst Du schon
ZitatAlles anzeigen1. "\WinSCP>winscp.com" könnte "\WinSCP\winscp.com" sein
2. Pfad "C:\Program Files (x86)\WinSCP" existiert nicht
3. "winscp.com" liegt nicht in dem Pfad
4. Server "server@test.com" gibt es nicht
5. Quell-Datei "c:\test.txt"
6. Zielpfad "/cygdrive/c/" existiert nicht, wird aber nicht automatisch angelegtAn obigem siehst Du, es kann an vielem liegen. Etwas mehr Infos sind schon notwendig.
Funktioniert die Programmzeile in einer Kommandozeile ? Bzw. welche Fehlermeldung
kommt in der Kommandozeile oder unter AutoIt ?
eben alles mit cmd überprüft (funktioniert!), ca. 1 Std. hin und her mit Autoit getestet, und erst dann habe ich hier eingeschaltet, weil ich nicht mehr weis was ich tun muss
unter Autoit kommt kein @error... ?
EDIT:
Zitat1. "\WinSCP>winscp.com" könnte "\WinSCP\winscp.com" sein
das war wahrscheinlich ein fehler von restlichen fehlern...es klappt nämlich trotzdem nicht ?)
also kein plan mehr:
in cmd funktioniert es so:
"C:\Program Files (x86)\WinSCP\"winscp.com /command "option batch abort" "option confirm off" "open server@test.com" "put C:\test.txt /cygdrive/c/" "exit"
und in _RunDos so:
_RunDos('"C:\Program Files (x86)\WinSCP\"winscp.com /command "option batch abort" "option confirm off" "open server@test.com" "put C:\test.txt /cygdrive/c/" "exit"')
wie finde ich nun heraus, was da eigentlich geschieht? es wird kein @error gesetzt bzw. _RunDos wird ausgeführt, und als rückabewert gibt es eben eine 1, jedoch weiß ich nicht wie ich an weitere ausgaben (wie zb. in cmd) ran komme...?
EDIT:
endlich die Lösung
_RunDos('""C:\Program Files (x86)\WinSCP\"winscp.com /command "option batch abort" "option confirm off" "open server@test.com" "put C:\test.txt /cygdrive/c/" "exit""')
etwas anderes: wie kann man ProgressBar mit _RunDos kombinieren?
Danke!
Du musst mal bei winscp nachsehen, ob Du an die Infomation kommst, wie weit der Vorgang fortgeschritten ist.
Du brauchts irgendwie einen Wert in % oder "y byte kopiert von X" mit dem Du die ProgressBar steuerst.
Edit: und Dich dann in der AutoIt-Hilfe unter "StdOutRead" informieren.
Du musst mal bei winscp nachsehen, ob Du an die Infomation kommst, wie weit der Vorgang fortgeschritten ist.
Du brauchts irgendwie einen Wert in % oder "y byte kopiert von X" mit dem Du die ProgressBar steuerst.Edit: und Dich dann in der AutoIt-Hilfe unter "StdOutRead" informieren.
dein Tipp ist das wonach ich eigentlich suche bzw. die selbe Idee, hab sogar (teils) passendes gefunden und etwas angepasst:
[autoit]Func _WINSCP($cmd)
[/autoit][autoit][/autoit][autoit]Local $i = 0 ; ???
Local $text = ''
Local $pid = Run(@ComSpec & ' /c ' & $cmd, '', @SW_HIDE, 2 + 4)
While 1
$text &= StdoutRead($pid, False, False)
If @error Then ExitLoop
Sleep(10)
ProgressSet($i, "")
$i += 20 ; ???
WEnd
ProgressSet(100, "Fertig", "Komplett")
ProgressOff()
Return $text
EndFunc
um an die Prozente ran zu kommen, dachte ich man könnte StringSplit nehmen und dann $text (|) zerteilen, und dann halt aus erstellte (StringSplit)Array die letzte Zeile mit ins ProgressSet (beim jeden Durchlauf) irgenwie einbinden, nur wie macht man das..? oder macht man das ganz anders?
Gruss,
Automatisator
so geht es auf jedenfall in meinen scripten für den winscp upload!
[autoit]
$UploadVorgang = RunWait('"C:\Programme\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')
$UploadVorgang = RunWait('"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')
[/autoit]am besten über @consolewrite prüfen, ob die pfade (leerzeichen im namen etc.) und variablen richtig sind, machmal fehlt ein "\" oder "/"
[autoit]
ConsoleWrite('"C:\Programme\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')
gruß gmmg
Hallo gmmg,
so geht es auf jedenfall in meinen scripten für den winscp upload!
[autoit][/autoit] [autoit][/autoit] [autoit]
$UploadVorgang = RunWait('"C:\Programme\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')$UploadVorgang = RunWait('"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')
[/autoit]am besten über @consolewrite prüfen, ob die pfade (leerzeichen im namen etc.) und variablen richtig sind, machmal fehlt ein "\" oder "/"
[autoit][/autoit]
ConsoleWrite('"C:\Programme\WinSCP\WinSCP.com" /console /command "option batch on" "option confirm off" "open ' & $username & ":" & $pass & "@" & $server & '"' & ' "cd ' & $ftppath & '/" "put ' & $Uploaddatei & '" "exit"')
danke Dir (hab etwas dazu gelernt)...
das Problem habe ich nicht mehr:
_RunDos('""C:\Program Files (x86)\WinSCP\"winscp.com /command "option batch abort" "option confirm off" "open server@test.com" "put C:\test.txt /cygdrive/c/" "exit""')
klappt problemlos...
nur das mir ProgressBar, da bin ich noch dabei irgendwie das ganze zu verstehen bzw. wie man WinSCP Daten Übertragung berechnen und in ProgressBar richtig anzeigen kann... ? hast Du da vielleicht auch paar gute beispiele?
Gruss,
Automatisator