使用Qt从.cmd文件输出读取Echo
Reading Echo from .cmd file output using Qt
我正试图使用Qt从命令行运行.cmd文件。我需要能够启动.cmd文件,然后我需要读取行输出,以便能够解释它是否成功。
我正在测试的.cmd文件如下:
@ECHO OFF
ECHO myBat Started.
ECHO myBat Ended.
从命令行运行这个命令会给我一个"myBat Started",然后是"myBat Ended"
下面是我试图读取数据输出的代码。
QString batName = "/path/to/*.cmd";
QProcess p;
qDebug() << "starting command";
p.start("cmd.exe", QStringList() << batName);
if (p.waitForStarted()){
qDebug() << "cmd started";
p.waitForFinished();
qDebug() << p.readAllStandardOutput();
} else {
qDebug() << "Failed to start";
}
当我运行这个程序时,我会得到"启动命令",然后是"cmd启动",最后是"。所以我正确地打开了控制台(我想),它完成了,但之后我没有得到任何数据输出。
我需要更改什么才能读取命令行输出?
将/C
开关添加到cmd
命令中,以便cmd.exe
在执行批处理文件后终止。
即,这一行:
p.start("cmd.exe", QStringList() << batName);
应该是这样的:
p.start("cmd.exe", QStringList() << "/C" << batName);
您甚至可以直接启动批处理文件,如下所示:
p.start(batName);
附言:如果您的代码在GUI线程中执行,请不要使用waitFor*
函数,而是使用信号/插槽。
相关文章:
- C++试图读取一个文件并输出到另一个文本文件
- 如何使用C++读取另一个程序中的源代码输出
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 从文件读取并通过矢量输出到控制台
- 从popen()读取的输出是否在pclose()之前完成
- C++ 读取未知数量的整数到 cin 并输出总和
- libmpg123 在我使用整数编码读取 mp3 时强制浮点输出
- 尝试从 txt 文件中读取两条数据并输出它们 [C++]
- 我需要编写一个程序来读取一个文件,该文件将输出所有唯一的整数,如果已经看到整数,它将被关闭
- 将多个效果与 libSox 链接并读取输出数据的正确方法
- 从文件中读取成绩并将平均值输出到另一个文件C++
- 将文本文件读取到2D数组中,但数组开始为超过数组[39][]的任何内容输出胡言乱语
- 如何将批处理文件的输出读取到C 中的字符串中
- C++将 popen 错误输出读取为字符串
- 从控制台输出读取 C++
- 如何在 c++ 中使用二进制文件输入/输出读取/写入结构的字符串类型成员
- 使用Qt从.cmd文件输出读取Echo
- 从标准输出读取奇怪的性能问题
- 如何将QProcess输出读取到QString
- 如何将<string>具有一定数量单词的向量输出读取到一行?