使用带有空格的参数从C#运行exe

时间:2011-06-10 11:30:10

标签: c#

我正在摸着这个。我正在尝试使用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();

3 个答案:

答案 0 :(得分:7)

但是你已经省略了C#版本的引号。它应该是:

myexternalexe.StartInfo.Arguments = @"comments ""\\192.168.1.1\a\here is the problem\c\d\""";

答案 1 :(得分:1)

你检查了

this

在你的情况下,应该可以工作。

 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\\\"";