使用Python脚本启动VirtualBox虚拟机



我有这个简单的脚本,不工作

import subprocess
subprocess.call(["C:Program FilesOracleVirtualBoxVBoxManage.exe", "VBoxManage startvm WIN7"])

我在bat文件中有相同的东西…

cd C:Program FilesOracleVirtualBox
VBoxManage startvm "WIN7"

我在Windows 8.1(我的主机操作系统)的路径中有VBoxManage.exe。

python脚本理解VBoxManage可执行文件,并吐出它的手册,然后这个..

Syntax error: Invalid command 'VBoxManage startvm WIN7'

你能给我一个方法来启动VM从内部的python脚本,无论是通过调用。exe直接或通过运行。bat文件?

注意:我已经搜索了vboxshell.py文件,但没有在任何地方找到它…[

]

subprocess.call()需要一个参数列表,如下所示:

subprocess.call(['C:Program FilesOracleVirtualBoxVBoxManage.exe',
                 'startvm',
                 'WIN7'])

你的代码将'VBoxManage startvm WIN7'作为一个参数传递给VBoxManage.exe,它期望只找到一个命令(例如:"startvm")。后续参数(本例中为'WIN7')需要单独传递。

另外,在使用subprocess.call()时不需要重复可执行文件名。Python文档中的示例调用UNIX命令"ls -l",如下所示:

subprocess.call(['ls', '-l'])

换句话说,您不需要重复'VBoxManage'部分。

技巧是将命令作为单独的参数传递

import subprocess 
subprocess.call(["C:Program FilesOracleVirtualBoxVBoxManage.exe", "startvm", "WIN7"]) 

最新更新