在QProcess中执行shell命令. [英] Executing the shell command in QProcess.Piping the input

查看:262
本文介绍了在QProcess中执行shell命令.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图通过管道执行命令,但无法确定如何通过管道执行.我正在尝试使用shell命令

I am trying to pipe the commands and execute it, but I am not able to figure how to pipe it. I am trying to copy multiple files at once using the shell command

对于(来源)中的%I,确实复制了%I(目标)

for %I in (source) do copy %I (destination)

QString files = "for %I in (source) do copy %I (destination)"
QProcess copy ;
copy.start(files);

我必须实施管道来做到这一点.例如

I have to implement the piping to do that. for Eg.

QProcess sh;
sh.start("sh", QStringList() << "-c" << "ifconfig | grep inet");

sh.waitForFinished();
QByteArray output = sh.readAll();
sh.close();

如何为复制过程实现管道?

How can I implement piping for my copy process?

推荐答案

尝试以下示例:

QProcess sh;
sh.start( "sh", { "-c", "ifconfig | grep inet" } );

if ( !sh.waitForFinished( -1 ) )
{
    qDebug() << "Error:" << sh.readAllStandardError();
    return -1;
}

const auto output = sh.readAllStandardOutput();
// ...

waitForFinished()应该在阻止模式下调用,并且必须检查它是否成功.

waitForFinished() should be called in blocking mode and it must be checked if it was successful or not.

这篇关于在QProcess中执行shell命令.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆