微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用QProcess调用带有参数的外部程序

如何解决使用QProcess调用带有参数的外部程序

我在一个文件夹中有一个exe文件夹,然后在另一个文件夹中有我的所有配置文件。为了运行程序:

如下所示,我可以使用系统调用正常工作,但是我需要一种与系统无关的方法

void MainWindow::on_pushButton_clicked()
{
    std::system("cd Path_To_ConfigFolder & Absolute_Path_To_Exe RunFile.txt > logfile.txt");
}

以上效果很好。尽管它只能在Windows上运行..所以我对使用QProcess来创建一种与系统无关的方法进行了一些研究..不管我尝试什么,我似乎都无法使它正常工作。见下文:

void MainWindow::on_pushButton_clicked()
{
    QProcess p;
    QStringList params;
    p.setWorkingDirectory("Path_To_ConfigFolder");
    params << " RunFile.txt > logfile.txt";
    p.start("Absolute_Path_To_Exe",params);
    p.waitForFinished(-1);
}

注意:对于上面的示例(使用QProcess),我的所有路径均为\\,并且所有路径均正确。

我在做什么错了?

解决方法

如果可执行文件位于本地文件夹中且与系统无关,则其名称以".\"开头。 Linux shell和PowerShell要求这样做。

“>”-输出重定向不是过程的自变量,将不起作用。您必须将输出通道重定向到您的或辅助进程。

p.setStandardOutputFile("log_file.txt")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。