我在调用Process.Start时尝试使用包含XML作为参数的字符串,但只有第一个空格的字符才能通过。例如,如果Input.xml包含以下文本<?xml version="1.0" encoding="utf-8" ?>
,我正在调用的所有应用程序都是"<?xml"
。
以下是将其置于上下文中的代码示例:
XmlDocument xml = new XmlDocument();
xml.Load("C:/Input.xml");
Process proc = Process.Start("C:/Program.exe", xml.OuterXml);
有什么方法吗?
答案 0 :(得分:2)
Process proc = Process.Start("C:/Program.exe", String.Concat("\"", xml.OuterXml,"\"");
即将参数包装在引号中。
与命令行中的xml参数无关,由空格分隔。
答案 1 :(得分:2)
尝试将XML数据作为命令行参数传递基本上是一个问题的处方。你会遇到遍布整个地方的问题,也可能是命令行长度限制。
从标准输入或文件名中读取。那时,它非常简单 - 文件通常比向stdin提供数据更简单,但两者都是可行的。
答案 2 :(得分:0)
传递参数时,应用标准规则,当字符串包含空格时,它会被分成多个参数。
你可以尝试:
Process proc = Process.Start("C:/Program.exe", "\"" + xml.OuterXml + "\"");
但是你的xml也包含"
个字符,然后再次中断。你可以做些什么,但是......这不值得努力。只需将文件名作为参数传递并在程序中加载xml(如果可以修改它)。