我正在摸着这个。我正在尝试使用system.diagnostics从C#运行一个exe,但它没有正确地传递我的参数,所以exe会崩溃。
由于其中的空格,它会在“here”(见下文)之后拆分路径。
有没有人知道如何在不重命名目录的情况下解决这个问题(这对我来说不是一个选项)
这可以从命令行开始:
“C:\ Users \ me \ Desktop \ myexternalexe \ myexternalexe.exe”comments“\ 192.168.1.1 \ a \这里是问题\ c \ d \”
这不适用于Visual Studio:
Process myexternalexe = new Process();
myexternalexe.StartInfo.FileName = @"C:\Users\me\Desktop\myexternalexe\myexternalexe.exe";
myexternalexe.StartInfo.Arguments = @"comments \\192.168.1.1\a\here is the problem\c\d\";
myexternalexe.Start();
答案 0 :(得分:7)
但是你已经省略了C#版本的引号。它应该是:
myexternalexe.StartInfo.Arguments = @"comments ""\\192.168.1.1\a\here is the problem\c\d\""";
答案 1 :(得分:1)
你检查了
在你的情况下,应该可以工作。
string folderName = @"\\192.168.1.1\a\here is the problem\c\d\";
myexternalexe.StartInfo.Arguments= @"comments" + " \"" + folderName +"\"";
答案 2 :(得分:0)
你试过了吗?
alexe.StartInfo.Arguments = "comments \"\\\\192.168.1.1\\a\\here is the problem\\c\\d\\\"";