본문 바로가기
프로그래밍/C# (WinForms)

C# ] 명령프롬프트, 시스템 명령어 실행

by eteo 2023. 7. 11.

 

using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        string Command = "dir";
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = "/C " + Command;

        Process process = new Process();
        process.StartInfo = startInfo;
        process.Start();

    }
}

 

 

C++에서 system("") 함수를 사용하여 시스템 명령어를 실행할 때는 내부적으로 명령 프롬프트를 호출하는 작업이 숨겨져 있어서 간단히 실행할 수 있었는데, C#에서는 이 작업을 명시적으로 해주어야 한다.

 

ProcessStartInfo startInfo = new ProcessStartInfo();

로 프로세스 시작 정보를 저장하기 위한 객체를 생성한다.

FileName 엔 실행할 파일명

그리고 Arguments에는 명령프롬프트에서 실행할 명령인수들을 입력한다.

Process process = new Process();

를 통해 Process 객체를 생성한 뒤 객체의 시작정보를 startInfo로 설정하고 process.Start();로 프로세스를 실행한다.

 

참고로 cmd 명령어 뒤에 "/c "는 다음 문자열을 받아 명령을 실행한 뒤 cmd.exe를 종료하라는 뜻이고

"/k"가 오면 명령 프롬프트 창이 남아있게 할 수 있다.