2017-01-23 12 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

啊我瞎了:) –