【发布时间】:2019-01-13 10:41:51
【问题描述】:
我正在尝试做一个 qt 小部件应用程序,我有一个批处理文件:包含
@echo off
echo Hello Everyone!
echo ----------------
echo 1 - Exit Program
echo ----------------
echo 2 - Say Hi 5 times
echo ----------------
set /p QUESTION=What would you like to do today?:
echo:
IF %QUESTION%==1 GOTO :1
IF %QUESTION%==2 GOTO :2
:1
exit
:2
cls
echo HI
echo HI
echo HI
echo HI
echo HI
pause
并且我想在使用 QProcess 启动它时将“2”作为参数传递给它,例如与执行同时进行
这是我的 mainwindow.cpp 文件
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
auto proc = new QProcess();
QString program = QString("\"%1%2\"").arg("C:/Users/firstname secondname/desktop/").arg("mybatchfile.bat");
QStringList arguments;
arguments << "2";
proc->setWorkingDirectory("C:/Users/firstname secondname/desktop/");
proc->start( program, arguments );
}
MainWindow::~MainWindow()
{
delete ui;
}
我所期望的是它运行我的批处理并向我显示 5 次 但我得到的是什么,我没有得到任何错误,但我没有得到想要的输出
谁能告诉我为什么会这样,我该如何解决?我真的是菜鸟,任何反馈都会有所帮助
【问题讨论】:
-
不能直接运行批处理文件。您需要运行 cmd.exe 并将批处理文件传递给它。
标签: c++ qt batch-file arguments qtwidgets