2015-05-02 2 views
1

Im пытается выполнить команду планировщика задач из C++, но имеет проблемы с кавычками.C++ отправить местоположение внутри цитат

schtasks /create /sc onlogon /tn Executable /rl highest /tr "\"C:\Program Files\Executable\Executable.exe"\" 

Как отправить эти команды летучей мыши через WinExec?

Я пытаюсь до сих пор это

WinExec("schtasks /create /sc onlogon /tn Executable /rl highest /tr \"""C:\\Program Files\\Executable\\Executable.exe\"""", 1); 

, но тот не работают.

+2

сырой строки 'R "(текст)"' (C++ 11) и 'станд :: quoted' (C++ 14). – Jarod42

+0

@ Jarod42 wow его работа как шарм -> пожалуйста, напишите как ответ, который я могу проголосовать -> WinExec (R "(schtasks/create/sc onlogon/tn Исполняемый/rl высший/tr" \ "C: \ Program Files \ Исполняемый файл \ Executable.exe "\") ", 1); – tonni

ответ

3

Вы можете использовать сырые строки, чтобы избежать вручную бежать характер, что-то вроде:

WinExec(R"(schtasks /create /sc onlogon /tn Executable /rl highest /tr "\"C:\Program Files\Executable\Executable.exe"\")", 1); 
+1

Поощрение [raw string literals] (http://en.cppreference.com/w/cpp/language/string_literal) против фидбезко-экранированных символов, должно быть каноническим ответом на такие вопросы! +1 –

+0

+1 к @ πάντα ῥεῖ для предоставления ссылки. Есть некоторые угловые случаи, которые стоит изучить, если ваша строка содержит начальную начальную последовательность по умолчанию для строк строковых литералов. –

Смежные вопросы