2016-11-01 4 views
0

мне нужна рука, с точки зрения обработки аргумент командной строки (на Windows), в С.Процесс аргумент командной строки на окнах

Предположим, у меня есть следующая ситуация

C:\Users\USER\Desktop> my_executable arg1 ' "A>200 && B<300 (just some conditions" ' 

В этом случае ARGC = 5

и

C:\Users\USER\Desktop> my_executable arg1 '"A>200 && B<300 (just some conditions"' 

В этом случае ARGC = 3

В зависимости от пользователей argv и argc будут отличаться. Как я могу написать код таким образом, что состояние и arg1 может быть правильно хранятся :) Требуемые: arg1 хранится в указателе полукокса условие также сохраняется в указатель полукокса

Благодаря

+2

У обоих есть argcount 3, поскольку аргументы определяются пробелом –

+0

Но на моем ПК первый имеет 5 – Kenlucius

+0

@ себя определяется пробелом и '' ' –

ответ

1

Дон» t используйте одинарные кавычки в качестве котировок аргументов в Windows, если вы не хотите реализовать свой собственный парсер аргументов. ^ можно использовать для выхода " и себя и нескольких других вещей. Чтобы включить " в аргументы, используйте "".

Если вам действительно нужно, позвоните по номеру GetCommandLineW и проанализируйте себя. GetCommandLineW возвращает строку, состоящую из имени исполняемого изображения, которое может быть заключено в двойные кавычки, за которым следует необязательное пространство и аргументы, точно такие же, как и для CreateProcess (что означает, что обработка уже выполнена) ^.

+0

Итак, как окно должно выглядеть так, аргумент типа передается? Должны ли они просто быть «что-то»? А как насчет на Mac ??? Спасибо :) – Kenlucius

+0

Что вы подразумеваете под 'как должен передаваться аргумент типа??? '' 'в каждом случае в Windows –

+0

@ LưuVĩnhPhúc О, я имею в виду. Как передать «условие» в командной строке? Если мы не используем одинарные кавычки, как в моем случае. Это просто my_executable arg1 "условия" ??? – Kenlucius

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