大家好,我已经解决了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
我需要帮助 谢谢
答案 0 :(得分:2)
QProcess正在按照您的意愿执行操作:将整行命令传递给shell。问题是您要么没有安装第二个程序cpio
,要么它不在您的Qt可执行文件的PATH环境中。
当您输入(我假设)Windows命令提示符时,该命令行是否有效?
顺便说一句。竖线字符是pipeline,而不是.exe的参数。这行命令实际上调用了两个独立的程序。