我有一个简单的控制台应用程序,使用VisualStudio在c#中创建。它有一个输入参数并将其返回到输出。 这是代码:
static void Main(string[] args)
{
string msg = args[0];
Console.WriteLine(msg);
}
然后我尝试将包含xml的param作为字符串传递:"<messages><message>message</message></messages>"
。如果我使用控制台来调用应用程序,没有任何错误。但是在我尝试调试此类应用程序的情况下,我在 Debug 选项卡上的命令行参数中添加了参数字符串。
在此之后我得到了意想不到的输出:
^<messages^>^<message^>message^</message^>^</messages^>
为什么我们有这样的输出以及如何克服这个问题?提前谢谢。
这个问题最简单的解决方案应该是替换不愿意的字符,如:
static void Main(string [] args)
{
string msg = args [0];
Console.WriteLine(msg.Replace( “^”, “”);
}
但是这种行为的原因放在了操作系统的核心位置。 Windows处理这种情况,例如从命令行使用参数启动批处理文件。根据@Artem K答案中提供的链接,您可以发现这是克服这种情况的两种方法。不幸的是,没有人解决这个问题。可能,因为Visual Studio在如何传递args以启动批处理的问题中添加了自己的东西。
答案 0 :(得分:1)
答案 1 :(得分:0)
,&lt;和&gt;具有特殊意义,有助于蒸汽重定向.. 是什么让dir / w&gt; myDirectory.txt可能或树|更多等等......
关注@Artem Koshelev帖子以解决这个问题。