#调用一个垃圾清理软件的.BAT。
这个BAT再运行的时候不是显示删除了什么什么的吗。
我想把这些信息显示再C#的文本框上显示。改如何呢?
====================================
try this
C# code
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "bat文件|*.bat|cmd文件|*.cmd";
if (dlg.ShowDialog() == DialogResult.OK)
{
StreamReader sr = File.OpenText(dlg.FileName);
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
while (sr.Peek() != -1)
{
string line = sr.ReadLine();
p.StandardInput.WriteLine(line);
}
sr.Close();
p.StandardInput.WriteLine("exit");
string response = p.StandardOutput.ReadToEnd();
string[] strLines = response.Split(new char[] { '/r', '/n' });
for (int i = 8; i < strLines.Length-6; i++)
{
textBox1.AppendText(string.Format("{0}/r/n", strLines[i]));
}
p.Close();
}
==============================
如果你执行方法的时间比较长。可以修改为这个
C# code
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "bat文件|*.bat|cmd文件|*.cmd";
if (dlg.ShowDialog() == DialogResult.OK)
{
StreamReader sr = File.OpenText(dlg.FileName);
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.Start();
while (sr.Peek() != -1)
{
string line = sr.ReadLine();
p.StandardInput.WriteLine(line);
}
sr.Close();
p.StandardInput.WriteLine("exit");
p.WaitForExit();
string response = p.StandardOutput.ReadToEnd();
string[] strLines = response.Split(new char[] { '/r', '/n' });
for (int i = 8; i < strLines.Length - 6; i++)
{
textBox1.AppendText(string.Format("{0}/r/n", strLines[i]));
}
p.Close();
}
C#调用bat文件执行命令
最新推荐文章于 2023-12-30 18:29:12 发布