用QProcess写cmd命令,会在命令前加上项目目录,怎么才能改成cmd 默认目录?
默认情况下,QProcess 执行命令时,它的当前工作目录(Current Working Directory,CWD)是与应用程序的工作目录相同的。因此,如果你希望 QProcess 执行命令时使用 cmd 的默认目录,你可以使用 QProcess::setWorkingDirectory() 方法来设置 QProcess 的当前工作目录为 cmd 的默认目录。
以下是一个示例代码片段,演示如何使用 QProcess 来执行命令,并将其当前工作目录设置为 cmd 的默认目录:
#include <QProcess>
int main(int argc, char *argv[]) {
QProcess process;
process.setWorkingDirectory("C:/Windows/System32"); // 设置当前工作目录为 cmd 的默认目录
process.start("cmd.exe", QStringList() << "/C" << "dir"); // 执行 dir 命令
process.waitForFinished(-1); // 等待命令执行完成
QString output = process.readAllStandardOutput();
qDebug() << output;
return 0;
}
在上面的示例中,setWorkingDirectory() 方法被用来将当前工作目录设置为 C:/Windows/System32 目录,这是 cmd 的默认目录。接下来,start() 方法被用来启动 cmd 并执行 dir 命令。
QProcess program;
QString cmd = "shutdown -s -t 120";
program.start(cmd);
program.waitForFinished();