拥有我想要执行一些命令的VMware VM,例如关闭/r或dir /o:d等.来自远程机器。使用模块pysphere模块与VM通信。
我尝试了start_process,但它只是为cmd.exe创建进程--我创建进程的代码是VM_object.start_process('cmd.exe',args=“关机/r")
发布于 2013-08-14 12:18:47
运行命令cmd.exe时,需要添加/c:
cmd.exe /c shutdown /r正如解释过的here一样,您需要告诉cmd.exe运行作为字符串传递的参数。您的命令只是运行cmd.exe,而没有实际发出作为参数传递的命令。/c标志指示cmd.exe执行传递的参数。
发布于 2015-06-09 08:54:11
虚拟机中的VM_object.start_process('cmd.exe',args=“关机/r")此命令将被解释为
cmd.exe "shutdown /r"因为start_process使用subprocess.list2cmdline()方法解析"args“参数。list2cmdline()为包含空格的list元素添加引号。
接下来,关于cmd参数。使用
cmd /?来理解您应该在代码中使用什么。在我的任务中有两个无懈可击的args:
例如,当您的python询问批处理文件的最后%错误级别%时,/k是有用的,它由popen执行。
所以,我认为,您的代码应该是:
VM_object.start_process('cmd.exe', args=["/c","shutdown", "/r"])https://stackoverflow.com/questions/18102663
复制相似问题