在Visual Studio调试命令参数中转义

问题描述 投票:0回答:1

我试图在Visual Studio的调试会话期间将命令行参数<(单引号,没有引号)传递给C ++程序。如Project settings for a C++ debug configuration中所述,<作为重定向运算符具有特殊含义,但它没有指定如何转义它。我尝试过使用"<"^<,但没有一个能按我的意愿行事。使用"<"参数从命令行调用命令按预期工作。

所以看起来调试命令参数首先被预处理。有没有办法逃避这个预处理中的角色?

c++ visual-studio debugging command-line
1个回答
1
投票

如果使用“开始调试”,似乎通过"<"工作。我正在使用“Start Without Debugging”,因此可以通过将"<"传递给空的控制台应用程序并调用“Start Without Debugging”来重现该问题。

“Start Without Debugging”似乎实际上调用了cmd.exe,因此命令参数受命令行解释规则的约束。然后问题是如何在命令行中逃脱<<可以通过使用^<来逃避双引号外的<,但我仍然不知道如何在双引号内逃脱qazxswpoi。

我必须说,根据程序的启动方式,调试命令参数的解释受到不同规则的影响,这有点令人惊讶。

© www.soinside.com 2019 - 2024. All rights reserved.