在C ++中的命令行参数中传递双引号

时间:2014-03-20 15:22:18

标签: c++ visual-c++ command-line command-line-arguments command-line-parsing

如何将带双引号的字符串作为字符作为命令行参数传递?

字符串之间基本上有一个空格,因为它被视为两个不同的参数。所以我试着把它们放在双引号中,就像这样。

wstring cmdLineParam = L"\"Test Value=abc\"";

这在大多数情况下完全正常。 但是现在如果我在字符串中使用双引号作为字符,则会失败。

wstring cmdLineParam = L"\"Test Value=abc \"test me\"\"";// I want the string to be passed as Value=abc"test me"

这里的参数被分成两个参数

argv [0] =“测试值= abc测试” argv [1] =“我”

这是我的示例代码。

wstring cmdLineParam = L"\"Test Value=abc \"test me\"\""; // Need to pass it as Value = abc "xyz uvw"

    wstring path = L"C:\\cmdtest.exe";

    BOOL bSuccess = CreateProcess ((LPCWSTR)path.c_str(), (LPWSTR)cmdLineParam.c_str(), NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
                                    NULL, NULL, &si, &piProcess);

正如我所提到的,输出是

argv[0] =  "Test Value=abc test"
argv[1] = "me"

请指导

谢谢&问候 苏尼

0 个答案:

没有答案