【问题标题】:Vagrant how to get exit code from Windows command over SSH?Vagrant 如何通过 SSH 从 Windows 命令获取退出代码?
【发布时间】:2020-01-13 19:23:22
【问题描述】:

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

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

$ vagrant ssh
> false
> echo %ERRORLEVEL%
1

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

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

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

【问题讨论】:

    标签: windows ssh cmd vagrant exit


    【解决方案1】:

    如果你尝试会发生什么:

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

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

    【讨论】:

    • 好的,所以测试右侧我可以确认工作 - 即 cmd.exe /c exit 1 只是将其包装到一个 bat 文件中,并调用它将错误级别重定向到一个没有 vagrant 的文件。这将问题留给了流浪者,虽然我已经部署了许多工具,但流浪者并不是其中之一。我假设 vagrant 在系统上下文中运行,在 Windows 上没有用户配置单元来加载路径并找到 cmd.exe 如果可以尝试 c:\windows\system32\cmd.exe /c exit 1 之后的下一步是创建一个bat文件,你可以调用dumping to a txt(这仅用于故障排除)
    猜你喜欢
    • 2016-10-08
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2014-04-23
    • 2018-11-04
    相关资源
    最近更新 更多