簡體   English   中英

在QProcess中執行shell命令。

[英]Executing the shell command in QProcess.Piping the input

我試圖通過管道傳遞命令並執行它,但是我無法弄清楚如何通過管道傳遞它。 我正在嘗試使用shell命令一次復制多個文件

對於(來源)中的%I,請復制%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() ,並且必須檢查它是否成功。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM