0

我正在尝试使用一个cmd命令提示符,当我在普通 cmd 窗口中通过Windows --> Start --> cmd

我的代码看起来像这样

"C:\Program Files\Rapid-I\RapidMiner5\scripts\rapidminer.bat" -f      
"C:\Users\user\.RapidMiner5\repositories\Local Repository\test.rmp"

这工作得很好。

问题是当我试图cmd通过 C# 打开一个窗口来用 C# 编写这段代码时

这是c#代码

ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd", "/c \"C:\\Program Files\\Rapid-I\\RapidMiner5\\scripts\\rapidminer.bat\" -f \"C:\\Users\\user\\.RapidMiner5\\repositories\\Local Repository\\test.rmp\"");

您可以看到我引用的方式与在常规 cmd 中工作的代码相同

但我得到一个can't recognize program files.

4

1 回答 1

0

尝试这个:

string fullPath = @"C:\Program Files\Rapid-I\RapidMiner5\scripts\rapidminer.bat";
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = Path.GetFileName(fullPath);
p.WorkingDirectory = Path.GetDirectoryName(fullPath);
p.Arguments = @"/c -f ""C:\Users\user\.RapidMiner5\repositories\Local Repository\test.rmp""";
Process.Start(p);

我修改了我的原始代码以向您的流程添加参数。

您可以尝试的最后一件事是将原始命令放入批处理文件并从ProcessStartInfo对象调用批处理文件,如下所示:

C#:

string fullPath = @"C:\Program Files\Rapid-I\RapidMiner5\scripts\run.bat";
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = Path.GetFileName(fullPath);
p.WorkingDirectory = Path.GetDirectoryName(fullPath);
Process.Start(p);
于 2013-11-05T21:22:33.110 回答