PyQt-Qprocess无法运行命令“;chcp“;直接但从批次上看是好的

PyQt-Qprocess无法运行命令“;chcp“;直接但从批次上看是好的,qt,python-3.x,cmd,pyqt5,qprocess,Qt,Python 3.x,Cmd,Pyqt5,Qprocess,以下代码用于执行批处理文件: 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 Eve

以下代码用于执行批处理文件:

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
但如果我想排除But file,我只执行简单的命令,如:

self.CMD.start("chcp")
它不工作,任何类型的信号都不会发出

其他命令的工作方式如下:

self.CMD.start("ipconfig")
self.CMD.start("help")
你应该试着

  • 使用文件的完整路径
    chcp.bat
  • 或者将文件
    chcp.bat
    的路径添加到系统路径中

并且可能确保该文件是可执行的。

可能可执行的
chcp
在您的
路径中,而文件
chcp.bat
不是(或不可执行)。但是
chcp
是标准的
CMD
命令,不需要任何路径是,因为它在系统路径中。尝试使用bat文件的完整路径。如果有效,那么您必须将此文件路径添加到系统路径。是的,您是对的,
self.CMD.start(“C:\Windows\System32\chcp.com”)
工作正常!不要将批处理文件命名为内部或外部
cmd
命令(在您的情况下,如
chcp
)@ErikŠťastný是的,是我,提供了答案而不是评论;)啊,我是瞎子:)