使用参数启动新进程

时间:2009-09-22 00:16:05

标签: c# process

我有一个程序可以从设置文件中接收这样的内容:

"C:\Files\App 1\App.exe" "-param1:true -blah"

它接收全部为1字符串,但C#中的Process对象需要程序和参数单独传递。有没有一种简单的方法在C#中解析它,或者只是传递语句而不先解析它?

2 个答案:

答案 0 :(得分:2)

这个怎么样?

var pattern = "\".*?\"";
var regex = new Regex(pattern);
var cmdString = "\"C:\\Files\\App 1\\App.exe\" \"-param1:true -blah\"";

var matches = regex.Matches(cmdString)
                   .OfType<Match>()
                   .Select(m => m.Value.Trim('\"'))
                   .ToArray();

var cmd = matches[0];
var arg = matches[1];

var proc = Process.Start(cmd, arg);
if (proc.Start())
    proc.WaitForExit();

答案 1 :(得分:0)

应该是这样的。

Process.Start(new ProcessStartInfo() { FileName = @"C:\Files\App 1\App.exe", Arguments = "-param1:true -blah" });

如果它全部作为一个字符串出现,则可以对第一个空格字符的索引进行子串。