【发布时间】:2019-02-22 14:09:40
【问题描述】:
您好,我有一个需要从另一个 exe 执行的应用程序。当我作为命令行参数传递时,相同的 json 字符串可以正常工作;但是当我将它作为 Process Start Info Arguments 传递时失败。
命令行参数:
输入(即 args[0]):"{\"mydllpath\":\"D:\\dll\",\"FilePath\":\"D:\\Input\\abc.doc\", \"Attribute\":\"word\"}"
Console.Writeline:{"mydllpath":"D:\\dll","FilePath":"D:\\Input\\abc.doc", "Attribute":"word"}
解析成功
进程启动信息参数:
输入:"{\"mydllpath\":\"D:\\dll\",\"FilePath\":\"D:\\Input\\abc.doc\", \"Attribute\":\"word\"}"
Console.Writeline:{"mydllpath":"D:\dll","FilePath":"D:\Input\abc.doc", "Attribute":"word"}
解析失败:解析值时遇到意外字符:D.
ProcessStartInfo psi = new ProcessStartInfo("D:\\ETS\\AE\\bin\\Debug\\AE.exe");
string json = "{\"mydllpath\":\"D:\\dll\",\"FilePath\":\"D:\\Input\\abc.doc\", \"Attribute\":\"word\"}";
psi.Arguments = json;
Process p = new Process();
Debug.WriteLine(psi.FileName + " " + psi.Arguments);
p.Start();
p.StartInfo = psi;
【问题讨论】:
-
包括用于进行进程调用的代码。
-
为了澄清,代码中的上述JSON,你为什么要转义路径中的斜杠?
-
它在没有转义序列的情况下给出错误