【发布时间】:2016-06-14 10:44:00
【问题描述】:
Python 子进程调用应该按原样作为命令运行,但它会抱怨其中是否有管道。这是我的代码:
#!/usr/bin/python
import sys
import subprocess
import time
service_name= "mysrvc"
state ="STOPPED"
mycmd ="sc query " + service_name + " " + "|" + " findstr" + " " + state
print(mycmd)
if subprocess.call(mycmd)==0:
print("Service stopped successfully")
我得到的错误是:
ERROR: Invalid Option; Would you like to see help for the QUERY and QUERYEX commands? [ y | n ]:
如果我将命令更改为只是
mycmd = "sc query " + service_name
我能够成功运行脚本。只是管道和它后面的参数是一个问题。如果我直接在命令行上运行sc query mysvrc | findstr STOPPED,它就可以正常工作。
我怎样才能让它工作?请注意,我使用 jython2.7 运行此 python 脚本。我没有成功使用 win32serviceutil,因为它找不到模块 win32serviceutil。
【问题讨论】:
-
请将整个错误消息复制粘贴到您的问题中。请参阅minimal reproducible example 了解更多信息。
-
我得到的错误是:错误:无效选项;您想查看有关 QUERY 和 QUERYEX 命令的帮助吗? [ 是 | n]:
-
请edit您的问题包含错误消息 --- 它将被埋在 cmets 中。