系统调用路径和空格

时间:2018-06-07 08:30:42

标签: c++ qt path escaping system-calls

我想用system() 到
1.打开cmd
2.保持打开/显示它 3.run给定路径中的“mybatchfile.bat”(包含空格)
4.通过“2”作为参数 这是system("cmd.exe /k C:/Users/firstname secondname/desktop/mybatchfile.bat 2");

的样子

当我运行它时,我得到的"C:/Users/firstname"写得不正确或者在我的命令提示符中找不到。

我该如何解决这个问题?我正在使用Qt和Qt使用“/”作为通用目录分隔符,就像“/”用作URL中的路径分隔符一样。所以我认为这不是问题所在。

我该如何解决这个问题?还有其他更简单的方法可以用来将参数传递给Qt中的批处理文件吗?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

要启动程序,您可以使用QProcess,如:

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 );

此代码不是testet,但应该可以运行。