首页 > 解决方案 > 使用 qt 作为新进程执行批处理文件

问题描述

我正在尝试执行批处理文件。

此代码应cmd.exe在分离的进程中开始并执行deleteme.bat。的返回值为exec->startDetachedtrue 但不执行批处理文件。

难道我做错了什么?

这是我的代码:

QStringList arguments;
arguments << "/C deleteme.bat";
QProcess * exec = new QProcess();
exec->startDetached("cmd.exe", arguments);

标签: c++qtc++11batch-fileqprocess

解决方案


这是一个工作示例QProcess(测试.bat文件的路径是E:\deleteme.bat):

QProcess process;
process.setProgram( "cmd.exe" );
process.setArguments( { "/C", R"(E:\deleteme.bat)" } );
process.setWorkingDirectory( R"(E:\)" );
process.setStandardOutputFile( QProcess::nullDevice() );
process.setStandardErrorFile( QProcess::nullDevice() );
process.startDetached();

deleteme.bat是自我删除的文件:

DEL "%~f0"

推荐阅读