从diskpart读取输出

时间:2018-07-27 14:33:19

标签: c++ windows qt

我在格式化笔式驱动器时需要读取 diskpart 的输出。这是我的代码,用于在后台对其进行格式化。

QString exePath = "diskpart.exe";
QString arguments = "/s pendrive.txt";
ShellExecuteW(NULL, NULL, (LPCWSTR)exePath.toStdWString().data(), (LPCWSTR)arguments.toStdWString().data(), NULL, SW_HIDE);

pendrive.txt:

select disk 1
clean
create partition primary
select partition 1
active
format quick fs=ntfs
assign

如何读取输出以检查是否已成功完成所有事情?

我找到了:

QString arg ="diskpart /s pendrive.txt > output.txt";

但是我该如何使用呢?它是否正确?这是检查格式化是否成功的最佳方法吗?也许没有.txt文件的其他解决方案会更好吗?

1 个答案:

答案 0 :(得分:2)

由于您已经使用了Qt,为什么不使用QProcess?这样可以节省您使用文本文件的麻烦。只需致电readAllStandardOutput。您甚至可以检查提供finished的{​​{1}}信号。