системный вызов с путями и пробелами - PullRequest
0 голосов
/ 07 июня 2018

Я хотел бы использовать system () для
1.открытого cmd
2. сохранить его открыть / показать его
3. запустить "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 голосов
/ 07 июня 2018

Для запуска программ вы можете использовать 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 );

Этот код не является тестовым, но его можно запустить.

...