Следующий код работает для выполнения пакетного файла: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