2013-07-29 141 views
0

我有使用多线批处理文件创建如下:QT批处理文件未执行。

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工程下的Qt Creator的罚款,但在一个独立的可执行文件(文件夹内DLL的),没有任何反应。 CMD外壳只是打开和关闭,没有任何事情发生。

这里是内部temp_exec.bat创建'S:

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内部也没关系,但是,通过使用Qt,事实并非如此。

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

任何想法?帮帮我?谢谢。

回答

0

nvm解决了它。二手p.startDetached()