QT批处理文件未执行。

时间:2013-07-29 14:46:05

标签: c++ windows qt shell batch-file

我有一个使用以下内容创建的多行批处理文件:

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:\2005\050016"
cd /d "Z:\FRONT 2" & for /d %%i in (*) do ROBOCOPY /E /IS /MOVE "%%i" "Z:\2005\050016"

如果双击并在Windows内部运行,那就OK,但是通过Qt,它不是。

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

有什么想法吗?救命?感谢。

1 个答案:

答案 0 :(得分:0)

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