QProcess限制协助

时间:2012-09-01 18:13:29

标签: qt batch-file qt4

大家好,我已经解决了QProcess的限制。如果我使用'|'然后它会跳过这个过程,但我需要'|'我的过程中的角色

假设我有一个exe,我需要'|'在它的参数列表中然后它不起作用,因为命令提示符采用'|'作为OR。因此它会跳过前一部分。

e.g: myfile.exe arguments1 | arguments2

现在在上面的代码中你可以看到'|'分隔两个参数的参数是myfile.exe执行操作所必需的,但是由于'|'字符它在此之前跳过部分,它给我输出

'arguments2' is not recognized as internal or external, operable program or  batch file

我如何克服这种奇怪的情况?我需要'|'在我的参数列表中,但进程将其识别为OR。

让我告诉你们实际的观点。我正在尝试使用

提取.cpio.gz存档
gzip -d -c myarchive.cpio.gz | cpio -i

但由于|在参数中我输出为

'cpio' is not recognized as internal or external, operable program or  batch file

但如果我在ubuntu中运行gzip的移植linux二进制文件,那么它的工作原理与我想要的完全一样,因为linux终端无法识别作为OR

我需要帮助 谢谢

1 个答案:

答案 0 :(得分:2)

QProcess正在按照您的意愿执行操作:将整行命令传递给shell。问题是您要么没有安装第二个程序cpio,要么它不在您的Qt可执行文件的PATH环境中。

当您输入(我假设)Windows命令提示符时,该命令行是否有效?

顺便说一句。竖线字符是pipeline,而不是.exe的参数。这行命令实际上调​​用了两个独立的程序。