CMD.exe цитирует строку - PullRequest
       10

CMD.exe цитирует строку

2 голосов
/ 26 июня 2010

Какой точный способ правильно заключить в кавычки один аргумент командной строки?Например, у меня есть случайный текст в переменной $X.Мне нужно указать это таким образом, чтобы при вызове

system("program.exe " + $X_QUOTED);

тогда argv[1] моего program.exe должен совпадать с исходным без кавычки $X

представьте, что у меня есть эта программа.exe:

int main(const char **argv, int){ puts(argv[1]); }

и вывод команды "program xxxx":

"test |test

что буквально должно быть xxxx?Я пытался добавить кавычки и все эти хитрости, но тогда я всегда могу добавить какой-то другой тип вывода, который нарушил бы мой подход к цитированию аргументов строки cmd.

1 Ответ

2 голосов
/ 26 июня 2010
H:>args """test |test"
argv[0] = args
argv[1] = "test |test

По-видимому:

  • Заменить каждую цитату на ""
  • Окружить аргумент кавычками
...