在QProcess中执行shell命令。管道输入
问题描述:
我正在尝试管道命令并执行它,但我无法确定如何管道。 我想多个文件一次使用shell命令在QProcess中执行shell命令。管道输入
用于%我(来源),先复制%I(目的地)
QString files = "for %I in (source) do copy %I (destination)"
QProcess copy ;
copy.start(files);
复制我要实现的管道来去做。例如: 。
QProcess sh;
sh.start("sh", QStringList() << "-c" << "ifconfig | grep inet");
sh.waitForFinished();
QByteArray output = sh.readAll();
sh.close();
如何为我的复制过程实现管道配置?
答
试试这个例子:
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()
应该被称为阻塞模式,如果它是成功还是失败,必须进行检查。
[管道(或命令链接)与QProcess]可能重复(https://*.com/questions/20901884/piping-or-command-chaining-with-qprocess) – Azeem
@Azeem这些答案不帮助我。 –
错误?问题是什么? – Azeem