0

次を使用して作成された複数行のバッチ ファイルがあります。

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 シェルは、何事もなかったかのように開いたり閉じたりします。

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 内で実行する場合は問題ありませんが、Qt を使用する場合はそうではありません。

QProcess STRANGE が発生する理由をフレームワークが説明しない理由がわかりません。

何か案は?ヘルプ?ありがとう。

4

1 に答える 1