Dans un script batch DOS, j'exécute une seule commande sur un ordinateur distant (également Windows) en utilisant plink. Auparavant, cette commande était uniquement exécutée sur la machine locale et comptait sur le code de retour pour déterminer le succès. Existe-t-il un moyen de récupérer facilement cette information via plink?Obtenir le code retour de plink?
Répondre
Ce n'est pas possible avec plink
. Le consensus actuel est d'avoir le script distant echo
son code de sortie dans un fichier journal, puis d'utiliser pscp
pour transférer le fichier journal vers la machine locale.
Voir http://fixunix.com/ssh/74235-errorlevel-capturing-plink.html.
avec plink 0,66
C:\Code>echo Y | "C:\Program Files (x86)\PuTTY\plink.exe" [email protected] exit 42
C:\Code>echo %ERRORLEVEL%
42
également pour souci de @John Wiersba quand ne peut pas être une connexion, cela semble être fixé
C:\CodeMisc>echo Y | "C:\Program Files (x86)\PuTTY\plink.exe" [email protected] exit 42
Unable to open connection:
Host does not exist
C:\Code>echo %ERRORLEVEL%
1
Notez également la tuyauterie de echo Y
... ce vous permet d'accepter automatiquement l'empreinte du serveur (un peu dangereux pour le moins ... mais notre serveur de connexion est charge équilibrée, de sorte que vous obtenez toujours différentes empreintes digitales :()
Cependant, comme le note @LeonBloy, plink a toujours des conditions de connexion qui renvoient un code de sortie nul. Si vous connaissez votre plage de codes de sortie et que vous ne disposez pas d'un bon moyen de communiquer vers Windows via un fichier. Vous pouvez soit +3 au code de sortie (si vous connaissez le code de sortie ne sera jamais == 253-255) ou vous pouvez appliquer un OU bit à bit (je suggérerais exit $(($?|128))
- en bash).
Ou si vous ne se soucient pas du code de sortie exacte, vous pouvez revenir 2 pour le succès, et zéro pour l'échec. Ainsi, un code de sortie autre que deux indiquerait un échec. En bash ce serait: echo $((($?==0) << 1))
. Ce serait de loin la solution polyvalente la plus robuste, mais vous devriez vous assurer que votre code de sortie est enregistré pour la capacité de débogage.
.. Cela semble être corrigé ... jusqu'à un certain point: ''> plink.exe -batch -ssh -i key.ppk [email protected] En utilisant le nom d'utilisateur "pi" Le serveur a refusé notre clé > echo % ERRORLEVEL% '' – leonbloy
- 1. code pour le bouton retour
- 2. Emacs, clochard, problème de plink sur XP
- 3. Code retour de l'application Mac
- 4. Obtenir le code de REPL
- 5. Autorisation ssh avec plink de la ligne de commande Windows
- 6. AudioSessionInitialize retour code d'erreur insondable
- 7. mysqldump passthru code retour
- 8. PLINK et supprimer des parties des données
- 9. problème en utilisant plink avec Java
- 10. Python: obtenir le code de retour du sous-processus ant dans Windows
- 11. Obtenir le code de sortie d'une substitution de commande
- 12. Obtenir errorInfo retour de TryParse()
- 13. bouton de retour de feu dans UINavigationcontroller avec le code
- 14. Comment obtenir le retour de php en javascript?
- 15. Comment obtenir le contrôle de retour de NSOperationQueue
- 16. mailto: liens - code de retour de js?
- 17. Comment exécuter un programme externe et obtenir le code retour dans un Firefox-Addon
- 18. Comment obtenir le code retour HTTP d'un objet XHR dans mootools
- 19. Code de retour/code de sortie pour l'API DataPump d'Oracle
- 20. Magento: Obtenir le code d'attribut
- 21. Obtenir le code court Locale
- 22. Obtenir la valeur de retour de processus
- 23. jboss Authentifier retour de code http 408
- 24. reconstitution historique plink ne fonctionne pas de asp.net
- 25. obtenir le formulaire de retour caché d'une autre forme
- 26. Comment obtenir le type de retour d'un boost :: signal?
- 27. Comment obtenir le retour de la valeur 'text' dans 'Textbox'?
- 28. Obtenir le code d'erreur de GetEventParameter
- 29. obtenir le code source HTML de webView
- 30. plink demandant des informations d'identification de connexion quand déjà argumenté?
Pour le bénéfice de tous ceux qui lisent aujourd'hui, peut-être cela était vrai quand il a été écrit, mais ce n'est pas plus vrai. La version actuelle de plink renvoie le code de sortie distant lors de l'utilisation du protocole ssh. – richb
... exemples de travail [** ici **] (http://stackoverflow.com/a/2988139/319204) et [** ici **] (http://superuser.com/a/130528). – TheCodeArtist
@richb: Pas exactement vrai. Plink 0.63 réussit (état de sortie 0) lorsqu'une connexion ne peut pas être établie. :-( –