using System;
using System.Diagnostics;
namespace YYX.CATest
{
/// <summary>
/// 尹永贤
/// 2016-12-25 12:09:49
/// yinyongxian@qq.com
/// </summary>
class Cmd : IDisposable
{
public Cmd()
{
InitializeSettings();
}
private string outputData;
private string errorData;
private readonly Process process = new Process();
private void InitializeSettings()
{
process.StartInfo.CreateNoWindow = true;
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
process.BeginOutputReadLine();
process.OutputDataReceived += (sender, e) => outputData += e.Data;
process.BeginErrorReadLine();
process.ErrorDataReceived += (sender, e) => errorData += e.Data;
}
public void Send(params string[] commands)
{
errorData = string.Empty;
foreach (var command in commands)
{
process.StandardInput.WriteLine(command);
}
process.StandardInput.WriteLine("exit");
process.WaitForExit();
if (string.IsNullOrEmpty(errorData) == false)
{
throw new InvalidOperationException(errorData);
}
}
public void Dispose()
{
process.Dispose();
GC.SuppressFinalize(this);
}
}
}
Windows上C# 执行Cmd命令
最新推荐文章于 2024-09-05 18:00:00 发布