首页 > 解决方案 > 从 diskpart 读取输出

问题描述

在格式化笔式驱动器时,我需要从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文件的其他解决方案会更好?

标签: c++windowsqt

解决方案


既然您已经使用 Qt,为什么不使用QProcess? 这为您节省了使用文本文件的麻烦。只要打电话readAllStandardOutput。您甚至可以检查finished信号,该信号提供ExitCode.


推荐阅读