2017-01-23 9 views
1

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

Возможно, исполняемый файл 'chcp' находится в вашем' PATH', тогда как файл 'chcp.bat' не является (или не является исполняемым). – Frodon

+0

Но 'chcp' является стандартной командой' CMD', доступной по любому пути –

+2

Да, потому что она находится в системе PATH. Попробуйте полный путь к файлу bat. Если он работает, вы должны добавить этот путь к вашей системе PATH. – Frodon

ответ

1

Вы должны попытаться

  • Используйте полный путь к файлу chcp.bat
  • Или добавьте путь к файлу chcp.bat к вашей системе PATH

и, возможно, убедитесь, что файл исполняемый файл.

+0

Да, я уже пробовал это, благодаря комментарию @Frodon. благодаря! –

+0

@ ErikŠťastný Да, это я, давая ответ вместо комментария;) – Frodon

+0

Ahh i'm blind :) –

 Смежные вопросы

  • Нет связанных вопросов^_^