【发布时间】:2013-04-07 07:42:39
【问题描述】:
请帮助我,我在特定位置有一个 .bat 文件,我想执行它并查看如果手动单击它会发生什么情况,问题是 .bat 文件作为弹出窗口运行只是片刻并且没有完成任何过程, 我的代码是这样的
int exitCode;
ProcessStartInfo processInfo;
Process process;
string command = @"D:\programs\PreRef\Run.bat";
processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
//processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
// *** Redirect the output ***
processInfo.RedirectStandardError = true;
processInfo.RedirectStandardOutput = true;
process = Process.Start(processInfo);
process.WaitForExit();
// *** Read the streams ***
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
exitCode = process.ExitCode;
process.Close();
所以请帮我解决这个问题。注意这个.bat 文件运行另一个.exe 程序,.bat 文件中的文本类似于PreRef.exe "D:\programs\PreRef"
【问题讨论】:
-
@duDE 这不一定是重复的。
-
只是为了调试工作,尝试更改
/K中的/c参数并注释掉重定向进程输出的最后几行(只留下Process.Start行)。现在您应该能够看到命令窗口并读取批处理文件的输出 -
相同的@Steve 没有完成任何过程
标签: c#