下面的代码执行批处理文件的工作:PyQt的 - QProcess中无法运行命令“CHCP”直接但从批其优良
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'文件不是(或不可执行的)。 – Frodon
但'chcp'是标准的'CMD'命令,无任何路径 –
是的,因为它在系统PATH中。尝试使用bat文件的完整路径。如果它有效,那么你必须将这个文件路径添加到你的系统PATH中。 – Frodon