我有以下代码:
String Antcbatchpath = @"C:\GUI\antc.bat";
System.Diagnostics.Process runantc = new System.Diagnostics.Process();
runantc.StartInfo.FileName = Antcbatchpath;
runantc.StartInfo.UseShellExecute = false;
runantc.StartInfo.RedirectStandardOutput = true;
runantc.StartInfo.RedirectStandardError = true;
runantc.Start();
这会从C:\GUI\antc.bat
加载批处理文件吗?
或runantc.StartInfo.FileName
仅适用于根目录?根目录是应用程序所在的位置
编辑1:
嗨而不是@" C:\ GUI \ antc.bat"我有一条路:
String Antcbatchpath =@"C:\GUI Lab Tools\Build Machine\antc.bat";
基本上包含空格。会影响runantc.StartInfo.Filename = Antcbatchpath;
吗?
答案 0 :(得分:5)
UseShellExecute = true
应该这样做。
或者,如果您需要重定向,请使用:
runantc.StartInfo.FileName = "CMD.EXE";
runantc.StartInfo.Arguments = "/C " + Antcbatchpath;
答案 1 :(得分:0)
您可以尝试设置WorkingDirectory
以防止出现歧义,但根据我的经验,这是没有必要的。
您遇到的问题是因为antc.bat
不是可执行文件。它需要UseShellExecute
为真,但这会阻止您重定向输出。我想你必须选择其中一个。