2017-01-23 10 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的路徑添加到系統路徑

並且可能確保該文件是可執行文件。

+0

是的,我已經嘗試過了,感謝@Frodon評論。謝謝! –

+0

@ErikŠťastný是的,這是我,提供了一個答案,而不是評論;) – Frodon

+0

啊我瞎了:) –