【发布时间】:2017-01-23 10:39:43
【问题描述】:
以下代码用于执行批处理文件:
def GetCMD_Encoding(self):
self.CMD = QProcess(self)
self.CMD.setProcessChannelMode(QProcess.MergedChannels)
self.CMD.readyReadStandardOutput.connect(self.EventDataForGetCMDEncoding)
self.CMD.start("chcp.bat")
def EventDataForGetCMDEncoding(self):
output = bytearray(self.CMD.readAllStandardOutput())
output = output.decode("ascii")
print (output)
.bat文件的内容只有:
chcp
但是如果我想排除但是文件并且我只执行简单的命令,比如:
self.CMD.start("chcp")
它不工作,并且没有发出任何类型的信号。
其他命令的工作方式如下:
self.CMD.start("ipconfig")
self.CMD.start("help")
【问题讨论】:
-
可能可执行文件
chcp在您的PATH中,而文件chcp.bat不是(或不可执行)。 -
但是
chcp是标准的CMD命令访问没有任何路径 -
是的,因为它在系统 PATH 中。尝试使用 bat 文件的完整路径。如果可行,则必须将此文件路径添加到系统 PATH。
-
是的,你是对的,
self.CMD.start("C:\Windows\System32\chcp.com")工作正常! -
不要将批处理文件命名为内部或外部
cmd命令(如您的情况下为chcp)!
标签: qt python-3.x cmd pyqt5 qprocess