У меня похожая проблема, подобная этой. Как избежать пробелов в командной строке в Windows без использования кавычек?
Но, кажется, я не могу использовать каретки
C:\>C:\Program^ Files^ (x86)\Adobe\Reader^ 11.0\Reader\AcroRd32.exe
C:\Program Files is not recognized as an internal or external command, operable program or batch file.
CD работает нормально:
C:\>cd C:\Program^ Files^ (x86)\Adobe\Reader^ 11.0\Reader\
C:\Program Files (x86)\Adobe\Reader 11.0\Reader>
Я звоню в Adobe Reader из приложения C++ с
UniString cmd("\"C:\\Program Files (x86)\\Adobe\\Reader 11.0\\Reader\\AcroRd32.exe\" ");
system(cmd.ToCStr());
Это нормально, Adobe Reader запущен. Но когда я добавляю еще один экранированный кавычки, чтобы передать путь аргумента в PDF
UniString cmd("\"C:\\Program Files (x86)\\Adobe\\Reader 11.0\\Reader\\AcroRd32.exe\" \"");
cmd.Append("A\\B with space\\C\\test.pdf");
cmd.Append("\"");
system(cmd.ToCStr());
я получил
C:\Program is not recognized as an internal or external command, operable program or batch file.
Что здесь происходит? Почему я не могу использовать каретки или экранированные кавычки больше раз?
(Боже, я так ненавижу окна)