QT批处理文件未执行

QT batch file not executing.

本文关键字:执行 批处理文件 QT      更新时间:2023-10-16

我使用以下命令创建了一个多行批处理文件:

QFile file("C:/temp_exec.bat");
file.open(QIODevice::WriteOnly | QIODevice::Text);
QTextStream out(&file);
out << cmd;
out << "n";
out << cmd_alt;
file.close();

其中cmd和cmd_alts是合法的多行批处理命令。在Windows中双击创建的文件可以很好地执行,但通过QT,它永远不会执行。

我已经尝试了所有可用的东西,这是我的最新尝试,

QProcess p;
p.setWorkingDirectory("C:/");
p.execute("temp_exec.bat");
p.waitForFinished();

它在Qt Creator下运行良好,但在一个独立的可执行文件中(在一个包含所有所需Qt DLL的文件夹中),什么都不会发生。CMD shell只是像什么都没发生一样打开和关闭。

以下是在temp_exec.bat:中创建的内容

cd /d "Z:FRONT 2" & for %%i in (*) do move /Y "%%i" "Z:200550016"
cd /d "Z:FRONT 2" & for /d %%i in (*) do ROBOCOPY /E /IS /MOVE "%%i" "Z:200550016"

如果双击并在Windows中运行,这是可以的,但通过Qt,这不是。

我不明白为什么框架没有通过QProcess解释为什么会发生奇怪的事情。

有什么想法吗?帮助谢谢

nvm解决了它。使用p.startDetached()