Como você está descobrindo, isso não funcionará.
%ERRORLEVEL%
(que não é, na verdade, "saída", mas sim uma função do shell local) retorna o status do último comando executado; no servidor B, que é EXECUTE_MY_COMMAND
, como você quer que seja - mas em A, é putty
! Como o Putty conectou-se com sucesso e fez o seu trabalho, %ERRORLEVEL%
é 0, como deveria ser.
Você pode modificar seu script em B para terminar com algo como echo %ERRORLEVEL%
(em vez de sua instrução if
), capturar essa saída em A (por exemplo, por redirecionamento) e reagir de acordo. Ou, seja o que for em A que esteja respondendo ao resultado, você poderia considerar reagir em B, tornando todo o processo inteiramente independente no servidor B e simplesmente acionado pela conexão de A.