我正在尝试在Visual Studio的调试会话期间将命令行参数<
(单引号括号,不带引号)传递给C ++程序。如Project settings for a C++ debug configuration中所述,<
作为重定向运算符具有特殊含义,但它没有指定如何转义它。我尝试过使用"<"
和^<
,但没有一个能按我的意愿行事。使用"<"
参数从命令行调用命令可以按预期工作。
所以看起来调试命令参数首先被预处理。有没有办法逃避这个预处理中的角色?
答案 0 :(得分:1)
似乎传递"<"
如果&#34;开始调试&#34;用来。我正在使用&#34; Start Without Debugging&#34;,因此可以通过将"<"
传递给空的控制台应用程序并调用&#34; Start Without Debugging&#34;来重现问题。
&#34;无需调试即可启动&#34;似乎实际上调用了cmd.exe,因此命令参数受命令行解释规则的约束。然后问题是如何在命令行中转义<
。可以使用<
对双引号外的^<
进行转义,但我仍然不知道如何在双引号内转义<
。
我必须说,根据程序的启动方式,对调试命令参数的解释会受到不同规则的影响,这有点令人惊讶。