启动批处理文件

时间:2011-03-23 08:10:18

标签: c# batch-file

我有以下代码:

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;吗?

2 个答案:

答案 0 :(得分:5)

UseShellExecute = true应该这样做。

或者,如果您需要重定向,请使用:

runantc.StartInfo.FileName = "CMD.EXE";
runantc.StartInfo.Arguments = "/C " + Antcbatchpath;

答案 1 :(得分:0)

您可以尝试设置WorkingDirectory以防止出现歧义,但根据我的经验,这是没有必要的。

您遇到的问题是因为antc.bat不是可执行文件。它需要UseShellExecute为真,但这会阻止您重定向输出。我想你必须选择其中一个。