Qt 运行.bat执行文件

经常使用第三方工具的.bat 文件 主要运用到QProcess
代码如下:
QProcess p(nullptr);
QString workDir= “D:/AAA/DeepDiagnosis/src”;
p.setWorkingDirectory(workDir); //设置工作文件夹
QString batfile="/start_predict.bat"; //分析启动程序
QString filePath=workDir+batfile; //执行文件的路径
p.start(filePath); //开始
if(p.waitForFinished()){
qDebug()<<“success”;
}else{
qDebug()<<“error”;
qDebug()< }

注意 这种写法不适用与路径中间有空格 比如 D:/Team File/xxx.bat 由于转译会导致出错。报警找不到该文件

解决办法1; 不要放在路径有空格的下面
解决办法2:
解决调用程序不能带有空格的问题。
2.1 使用使用空参数(arguments)的start接口

接口:

void start(const QString &program, 
           const QStringList &arguments, 
           QIODevice::OpenMode mode)

示例:

QProcess process;
process.start("C:/Users/Tmp/Test Demo.exe", QStringList());

2.2 配合转义\字符的start接口

接口:

void start(const QString &command, QIODevice::OpenMode mode)
示例:
QProcess process;
process.start("\"C:/Users/Tmp/Test Demo.exe\"");

你可能感兴趣的:(Qt,Qt,运行.bat执行文件)