Получить уровень ошибки в сценарии cmd, вызывающем ssh

ssh -i private_linux_key user@machine "exit 1" || echo %errorlevel%

Это всегда печатает 0, Как я могу получить реальный код ошибки, возвращаемый ssh?

|| как-то обнаруживает, что произошла ошибка.

1 ответ

Решение

Я нашел решение, благодаря следующему вопросу: https://stackoverflow.com/questions/11554324/batch-file-errorlevel-issue

setlocal enabledelayedexpansion
ssh -i private_linux_key user@machine "exit 1" || echo !errorlevel!

Или даже проще

ssh -i private_linux_key user@machine "exit 1"
exit %ERRORLEVEL%

Последнее возможно только тогда, когда после скрипта больше нет дополнительных строк exit, конечно

Читать больше о enabledelayedexpansion и различия между оболочками windows/unix: http://blogs.msdn.com/b/oldnewthing/archive/2006/08/23/714650.aspx

Другие вопросы по тегам