我正在尝试运行一个特定的程序,该程序使用os.system
从任务调度程序运行cmd命令。
os.system('"C:\Program Files\BlueStacks_nxt\HD-Player.exe" --instance Nougat32')
os.system('cmd /c "adb start-server"')
当我从IDE运行时,代码工作完美。但是,每当我尝试运行py文件或导出的exe文件时,该程序无法启动BlueStack或adb服务器。当我直接运行exe文件时,exe文件也可以正常工作。
我首先认为可能是一些错误,并使用try/catch短语来记录异常,但没有引发异常。
在这里我找到了一种在任务运行时显示cmd提示符的方法。当我将设置更改为"仅当用户登录时运行"时,弹出cmd提示符,os.system
工作。
所以我的问题是为什么os.system
不工作时,cmd提示符从后台运行,但当cmd提示符显示?我能够通过任务管理器检查cmd是否在后台正常运行,并且两次特权都设置为最高。
有可能os.system
确实工作,但由于某种原因进程未能运行。
你能试着把终端的输出保存到一个文件中,看看是否有输出吗?要做到这一点,你可以使用subprocess.Popen
命令,它会给你命令的粗壮和标准错误。