#Edit: Lösung wird in Zukunft noch hinzugefügt...
Hallöchen zusammen,
seit mehreren Tagen drehe ich mich mit meinen Gedanken im Kreis und komme auf keinen grünen Zweig. Folgend eine kurze Beschreibung meines Vorhabens...
Edit: Kurzfassung meines Problems: Beim auslesen der DOS ausgabe mit StdoutRead klappt immer nur der erste versuch, ich brauche das aber die ganze Zeit
Ich will via SSH (Putty/Plink) auf einen Rechner zugreifen und dort Kommandos absetzen. Wichtig ist mir dass ich auslesen kann was dort passiert. Ich habe das problem, dass ich nach dem connecten gerne prüfen will ob dies geklappt hat. Das passt soweit eigentlich wenn ich z.B. mit nem RegExp auf "FATAL ERROR" prüfe. Nun wäre es allerdings an der Zeit sofern es geklappt hat ein Perl-Script anzuwerfen und dort wird quasi in die Konsole geschrieben, und somit könnte ich theoretisch diesen Text auswerten wenn ich ihn denn kriege.
Ich habe versucht danach mit StdinWrite zu arbeiten aber irgendwie kriege ich das nicht so hin wie ich möchte. Zu Beginn habe ich auch mal einfach Putty gestartet und dann mit ControlSend gearbeitet, aber dort habe ich keinerlei Möglichkeit gefunden das Putty Fenster nach jedem Kommando auszulesen.
Daher wäre meine Frage an euch, ob ihr mir n schlauen Tipp zum vorgehen geben könnt (sofern möglich).
Hier mal das Verbindungsskript von mir:
[autoit]Local $foo = Run(@ComSpec & ' /c "C:\Program Files (x86)\Putty\plink.exe" -v -ssh user@host:port -pw password', @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
If $line <> '' Then
ConsoleWrite("#STDOUT##################################" & @CR & _
$line & @CR & _
"################################################################################" & @CR)
EndIf
WEnd
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
If $line <> '' Then
ConsoleWrite("#STDERR#########################################" & @CR & _
$line & @CR & _
"################################################################################" & @CR)
EndIf
WEnd
Die Traumvorstellung wäre dass ich im Putty ein Befehl absetze, und alles was dort in die Konsole geschrieben wird bis zum nächsten "user@host:~#" auch ausgelesen wird z.B. mit ner schleife dass auch nicht einfach folgende Statements abgesetzt werden obwohl da noch ein altes Skript läuft.