2013-07-29 140 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()