0

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

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

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 终端无法识别 | 作为或

请问我需要帮助 谢谢

4

1 回答 1

2

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

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

顺便提一句。竖线字符是管道,而不是 .exe 的参数。这行命令实际上调​​用了 2 个单独的程序。

于 2012-09-01T19:39:25.587 回答