我有这个简单的脚本,不工作
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"])