可以使用BackgroundWorker异步进行。点击button的时候启动BackgroundWorker的RunWorkerAsync方法。BackgroundWorker的第一个参数是你要执行的process的方法,第二个参数是处理进度条的方法,第三个参数是执行完成的方法。
如
BackgroundWorker b = new BackgroundWorker();
b.DoWork += new DoWorkEventHandler(dowork);
b.ProgressChanged += new ProgressChangedEventHandler(process);
b.RunWorkerCompleted += new RunWorkerCompletedEventHandler(complete);
b.WorkerReportsProgress = true;
b.RunWorkerAsync(args);
将bat file的处理方法放在dowork里,process是进度条的处理方法,complete是结束时操作的方法。