Системный вызов windows C с пробелами в команде
Я не могу выполнять системные вызовы с пробелами в именах и параметрах. Например:
system("c:\\program files\\something\\example.exe c:\\my files\\example.txt");
Я пытался убежать во всех отношениях, я знаю, как и НИЧЕГО работает. Я пробовал:
system("\"c:\\program files\\something\\example.exe\" \"c:\\my files\\example.txt\"");
и
system("c:\\program^ files\\something\\example.exe c:\\my^ files\\example.txt");
Ни одна из них не работает. Я все еще получаю 'c:\program' не реконструированная внутренняя или внешняя команда
Это действительно сводит меня с ума... Мне нужно вызвать и передать параметры, в которых есть пробелы. Я не могу использовать короткие обозначения по причинам, по которым я не буду вдаваться.
Я пробовал использовать кавычки вместо кавычек, все равно не работает. Я попытался помещать кавычки вокруг всего объекта и кавычки вокруг пробелов, и это не работает.
Кто-нибудь знает, как правильно это сделать?
Ответы
Ответ 1
Изменить: ОК, выяснилось, вступая в вызов system()
: вам нужен дополнительный набор котировок вокруг всего этого из-за того, что он внутренне вызывает cmd/c yourinput
Итак, это работает для меня:
system("\"\"c:\\program files\\internet explorer\\iexplore.exe\" \"www.stackoverflow.com\"\"");
Немного беспорядка, не так ли?