试图通过c#使用cmd

时间:2013-11-05 21:07:50

标签: c# cmd

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

使用它时,该命令提示符正常工作

我的代码看起来像这样

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

这很好用。

问题是当我尝试通过C#打开cmd窗口在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

1 个答案:

答案 0 :(得分: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);