1 public interface IRunConsole
2 {
3 void Run();
4 }
public abstract class RunConsole:IRunConsole
{
public abstract string[] Args { get; }
public abstract string FileName { get; }//CMD
public string result;
public string error;
public virtual int WaitExitedTime {
get {
return 60000;
}
}
#region IRunConsole 成员
public void Run()
{
using(System.Diagnostics.Process process = new System.Diagnostics.Process()){
process.StartInfo = new System.Diagnostics.ProcessStartInfo(FileName)
{
RedirectStandardOutput=true,
RedirectStandardInput=true,
CreateNoWindow=true,
UseShellExecute=false,
RedirectStandardError = true
};
process.Start();
foreach (string arg in Args) {
process.StandardInput.WriteLine(arg);
}
process.StandardInput.WriteLine(@"exit");
process.WaitForExit();
this.result = process.StandardOutput.ReadToEnd();
this.error = process.StandardError.ReadToEnd();
process.Close();
if (!string.IsNullOrEmpty(this.error)) {
throw new Exception(this.error);
}
}
}
#endregion
}
1 public class RunDelDirectory : RunConsole
2 {
3 public string DirPath
4 {
5 get;
6 set;
7 }
8 public override string[] Args
9 {
10 get {
11 return new string[]{
12 string.Format("rd /s/q {0}",this.DirPath)
13 };
14 }
15 }
16
17 public override string FileName
18 {
19 get { return "cmd"; }
20 }
21 }