1. 程式人生 > >QProcess呼叫bat指令碼 QString bat("F:\\mybat.bat"); QFile file1(bat); file1.open(QIODevice::Rea

QProcess呼叫bat指令碼 QString bat("F:\\mybat.bat"); QFile file1(bat); file1.open(QIODevice::Rea

在某些應用場景下可能需要呼叫批處理,在qt中可以輕鬆實現

#include "widget.h"
#include <QApplication>
#include <QProcess>
#include <QDebug>
#include <QTextCodec>

int main(int argc, char *argv[])
{
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QProcess process;
    QString bat("F:\\mybat.bat");
    process.start(bat);
    if(process.waitForStarted()){
        qDebug()<<"程式啟動成功";
        process.waitForFinished(5000);
        QString ret = process.readAll();
        qDebug()<<ret;
    }
}

需要注意的是,當bat指令碼中存在中文字元時,需要使用notepad++或其他工具將指令碼檔案的編碼轉成ANSI格式