get return-code von plink?
In einer DOS-batch-script, ich bin mit einem einzigen Befehl auf einem entfernten (auch windows -) computer mit plink. Früher, dieser Befehl wurde nur auf dem lokalen Computer ausgeführt, und war unter Berufung auf den return-code, um den Erfolg bestimmen. Gibt es einen Weg, um leicht zu bekommen, diese Informationen werden zurück durch plink?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist nicht möglich, mit
plink
. Der derzeitige Konsens ist, um die remote-Skriptecho
seinen exit-code in einer log-Datei, dann verwenden Siepscp
transfer der log-Datei auf der lokalen Maschine.Sehen http://fixunix.com/ssh/74235-errorlevel-capturing-plink.html.
mit plink 0.66
Auch für @John Wiersba die Sorge darüber, Wann eine Verbindung hergestellt werden kann, dies scheint behoben zu sein
Beachten Sie auch die Verrohrung von
echo Y
... das können Sie akzeptieren die server-Fingerabdruck automatisch (ein wenig gefährlich, um es gelinde zu sagen ... aber unser login-server ist die Belastung symmetrisch, so sind Sie immer verschiedene Fingerabdrücke 🙁 )Aber wie @LeonBloy Noten, plink hat noch einige Verbindungs-Bedingungen, die Rückgabe eines null exit-code. Wenn Sie wissen, dass Ihre exit-code-Bereich und Sie haben keine gute Art der Kommunikation zurück zu windows über eine Datei. Sie könnten entweder ein +3 auf den exit-code (wenn Sie wissen, der exit-code wird nie == 253-255) oder Sie anwenden konnte eine bitweise ODER (würde ich empfehlen
exit $(($?|128))
- in der bash).Oder wenn Sie kümmern sich nicht um die genaue exit-code, den Sie zurückkehren konnten, 2 für Erfolg und null bei Misserfolg. So eine nicht-zwei exit-code geben würde, Versagen. In der bash wäre dies:
echo $((($?==0) << 1))
. Dies wäre mit Abstand die robuste Allzweck-Lösung, aber Sie sollten sicherstellen, dass Ihre exit-code angemeldet ist für debug-Fähigkeit.>plink.exe -batch -ssh -i key.ppk [email protected] Using username "pi". Server refused our key >echo %ERRORLEVEL% 0