【问题标题】:QT batch file not executing.QT 批处理文件未执行。
【发布时间】:2013-07-29 10:06:23
【问题描述】:

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

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 中运行它是 OKAY,但通过 Qt,它不是。

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

有什么想法吗?帮助?谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      • 2012-12-26
      相关资源
      最近更新 更多