如何在 ASP.NET C# 中执行 bat 文件并跟踪它
How to execute a bat file in ASP.NET C# and trace into it
我需要执行一个调用第三方程序的 bat 文件,但首先我尝试执行一个简单的 bat,它将输出写入文本文件。
文本文件未创建,我无法使用断点对其进行跟踪,你能帮我吗?
System.Diagnostics.Process si = new System.Diagnostics.Process();
si.StartInfo.WorkingDirectory = @"c:\";
si.StartInfo.UseShellExecute = false;
si.StartInfo.FileName = "cmd.exe";
si.StartInfo.Arguments = Server.MapPath("Temp/test.bat");
si.StartInfo.CreateNoWindow = true;
si.StartInfo.RedirectStandardInput = true;
si.StartInfo.RedirectStandardOutput = true;
si.StartInfo.RedirectStandardError = true;
si.Start();
//string output = si.StandardOutput.ReadToEnd();
si.Close();
这是bat文件的内容:
echo test > test.txt
终于搞定了,只需要换个路径就可以了:
string path = Server.MapPath("Temp");
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.WorkingDirectory = path;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = PCombine(path, "test.bat");
proc.StartInfo.Arguments = String.Format("{0} {1}", PCombine(path, filename), PCombine(path, "new_" + filename));
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.Start();
proc.WaitForExit();
proc.Close();
proc.Dispose();
我需要执行一个调用第三方程序的 bat 文件,但首先我尝试执行一个简单的 bat,它将输出写入文本文件。 文本文件未创建,我无法使用断点对其进行跟踪,你能帮我吗?
System.Diagnostics.Process si = new System.Diagnostics.Process();
si.StartInfo.WorkingDirectory = @"c:\";
si.StartInfo.UseShellExecute = false;
si.StartInfo.FileName = "cmd.exe";
si.StartInfo.Arguments = Server.MapPath("Temp/test.bat");
si.StartInfo.CreateNoWindow = true;
si.StartInfo.RedirectStandardInput = true;
si.StartInfo.RedirectStandardOutput = true;
si.StartInfo.RedirectStandardError = true;
si.Start();
//string output = si.StandardOutput.ReadToEnd();
si.Close();
这是bat文件的内容:
echo test > test.txt
终于搞定了,只需要换个路径就可以了:
string path = Server.MapPath("Temp");
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.WorkingDirectory = path;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.FileName = PCombine(path, "test.bat");
proc.StartInfo.Arguments = String.Format("{0} {1}", PCombine(path, filename), PCombine(path, "new_" + filename));
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.Start();
proc.WaitForExit();
proc.Close();
proc.Dispose();