프로그래밍 언어/C#
[C#] 명령 프롬프트 실행
proApril
2022. 8. 26. 15:47
# CMD 창 켜서 실행
using System.Diagnostics;
Process.Start("cmd.exe", command);
# 다른방법 (백그라운드 실행)
using System.Diagnostics;
public void RunCmd(string Command)
{
ProcessStartInfo cmd = new ProcessStartInfo();
Process process = new Process();
cmd.FileName = @"cmd";
cmd.WindowStyle = ProcessWindowStyle.Hidden; // cmd창이 숨겨지도록 하기
cmd.CreateNoWindow = true; // cmd창을 띄우지 안도록 하기
cmd.UseShellExecute = false;
cmd.RedirectStandardOutput = true; // cmd창에서 데이터를 가져오기
cmd.RedirectStandardInput = true; // cmd창으로 데이터 보내기
cmd.RedirectStandardError = true; // cmd창에서 오류 내용 가져오기
process.EnableRaisingEvents = false;
process.StartInfo = cmd;
process.Start();
process.StandardInput.Write(@Command + Environment.NewLine);
// 명령어를 보낼때는 꼭 마무리를 해줘야 한다. 그래서 마지막에 NewLine가 필요하다
process.StandardInput.Close();
string result = process.StandardOutput.ReadToEnd();
StringBuilder sb = new StringBuilder();
//sb.Append("[Result Info]" + DateTime.Now + "\r\n");
sb.Append(result);
sb.Append("\r\n");
//textBox1.Text = sb.ToString();
process.WaitForExit();
process.Close();
string ret = sb.ToString();
Console.WriteLine("Command : " + Command); // 커맨드 확인.
// Console.WriteLine("Command :" + Command + "\n" + "Return :" + ret);
}