1

我需要创建一个简单的脚本(Windows .bat)来配置或设置一个盒子。

对 .bat 文件没有太多经验,所以这是我目前所拥有的:

感谢 Greg Hewgill 编辑

cd C:\vagrant-box\

call vagrant-up.bat

if errorlevel 1 call vagrant-provision.bat

脚本中编辑的 .bat 文件分别call只包含一行:vagrant upvagrant reload

当 vagrant box 关闭时,vagrant up 运行成功。启动时,我遇到了 vagrant up 的错误(这是我所期望的),但整个批处理文件在那里死掉了。ErrorLevel似乎没有做任何事情。


如果它有所作为,这是错误

Bringing machine 'default' up with 'virtualbox' provider...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["list", "hostonlyifs"]

Stderr: VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005) - Server execution failed (extend)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.

我想强调我并不关心错误本身。它在盒子不运行时工作,所以很好。我只想捕获或忽略它,然后转到下一个命令。

4

2 回答 2

2

vagrant up即使机器已经在运行,也会以代码 0 退出。

但是您不必担心退出代码,您可以运行:

vagrant provision && vagrant up

你应该涵盖这两种情况。如果来宾没有运行,vagrant provision将优雅地失败并vagrant up成功,反之亦然。

于 2013-08-08T13:25:54.977 回答
1

请发布您的 vagrant-up.bat。

另外,试试这个: vagrant up --debug

和/或

VAGRANT_LOG=debug vagrant <action>

获取有关 COM/VBox 问题的更多详细信息。

于 2014-09-06T21:02:02.127 回答