【发布时间】:2015-01-15 14:26:01
【问题描述】:
我在 Windows(不知道这是否重要)应用程序中使用 QT,并希望使用 QProcess 从我的应用程序启动一些进程。
(实际上是通过一个使用QProcess的qtscript包装器)
这似乎可行,但在使用更高级的命令行时遇到问题,例如使用管道连接程序。
如果我使用以下程序行启动一个进程:
QProcess proc;
QString command = "grep \"false negatives\" test.txt | cut -f2";
proc.start(command);
grep 命令抱怨找不到文件“2”。所以很明显命令行没有像我期望的那样被解释。
如果我在命令前加上 cmd /C 前缀,它运行良好,但这显然不再独立于操作系统,并且可能对命令行参数有一些额外的警告。
有没有类似 Qt 的方法来处理它并强制 Qt 使用一些默认的命令行解释器?
【问题讨论】:
-
@Merlin069 它不是重复的。问题是不同的。我的问题中已经提到了链接问题的答案(通过 shell 调用命令)。
-
请显示对 QProcess start 的完整调用,而不仅仅是命令行参数。
-
@Merlin069 完成了,但这并没有什么特别之处。
-
只需调用“bash -c command1 | command2”或“cmd /c command1 | command2”或任何正确的格式。