首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在QProcess.Piping中执行shell命令

在QProcess.Piping中执行shell命令
EN

Stack Overflow用户
提问于 2017-08-11 08:46:36
回答 1查看 868关注 0票数 0

我正在尝试调用命令并执行它,但我无法理解如何输送它。我试图使用shell命令一次复制多个文件。

对于(源)中的%I,请复制%I (目标)

代码语言:javascript
复制
QString files = "for %I in (source) do copy %I (destination)"
QProcess copy ;
copy.start(files);

我必须实施管道才能做到这一点。就像。

代码语言:javascript
复制
QProcess sh;
sh.start("sh", QStringList() << "-c" << "ifconfig | grep inet");

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

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

EN

回答 1

Stack Overflow用户

发布于 2017-08-11 10:14:39

试试这个例子:

代码语言:javascript
复制
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(),并且必须检查它是否成功。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45630768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档