我试图运行以下内容:
String command = @"Rscript C:\Users\someone\Documents\generate_files.R " + fname + " " + folder;
System.Diagnostics.Process.Start("CMD.exe", "/K PATH C:\\Program Files\\R\\R-3.1.1\\bin;%path%");
System.Diagnostics.Process.Start("CMD.exe", "/K " + command);
执行时没有任何反应,有人知道为什么吗?如果我试试
System.Diagnostics.Process.Start("CMD.exe", "/K MD TEST");
工作正常:s
e:一些额外的信息,第一个命令是设置PATH,这样只需键入Rscript就可以调用Rscript。此外,当我在普通的CMD界面中执行这些命令时,这两个命令都可以正常工作。
答案 0 :(得分:2)
准备批处理文件并执行
using(StreamWriter sw = new StreamWriter("runscript.cmd", false))
{
sw.WriteLine(@"PATH C:\Program Files\R\R-3.1.1\bin;%path%");
sw.WriteLine(@"Rscript C:\Users\someone\Documents\generate_files.R " + fname + " " + folder);
}
System.Diagnostics.Process.Start("CMD.exe", "/K runscript.cmd");
这假设您对当前目录具有读/写权限。您可以使用
将位置更改为更合适的位置string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string fileCmd = Path.Combine(path, "runscript.cmd");
using(StreamWriter sw = new StreamWriter(fileCmd, false)
....
答案 1 :(得分:0)
史蒂夫意识到,我正在运行两个控制台进程。要解决这个问题,我只需在同一个过程中运行两个命令。
答案 2 :(得分:0)
cmd.Arguments =" / K \"" + fullFilePath;
*尝试双倍" "就在PATH之前