首页 > 解决方案 > Vagrant 如何通过 SSH 从 Windows 命令获取退出代码?

问题描述

我正在使用带有 Windows 7 的 Vagrant VM 进行自动构建过程。

如果我直接通过 SSH 进入 Windows,我可以看到%ERRORLEVEL%正在设置:

$ vagrant ssh
> false
> echo %ERRORLEVEL%
1

但是,如果我直接向 Windows 发送 SSH 命令,Vagrant 不会使用退出代码:

$ vagrant ssh -- cmd.exe /C 'false'
$ echo $?
0

有没有办法将%ERRORLEVEL%通过 Vagrant SSH 执行的命令中的 Windows 变量传递回我的主机外壳?我希望该解决方案不涉及将变量重定向到文件中。

标签: windowssshcmdvagrantexit

解决方案


如果你尝试会发生什么:

vagrant ssh -- cmd.exe /C 退出 1

只是认为 cmd.exe /c 正在打开一个新的命令提示符,而 false 就在其中,而不是像 exit 那样返回任何外部的值!


推荐阅读