2014. 11. 1. 10:11

cmd 명령어 입력하기 (Oracle_Backup)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Diagnostics; //process 를 사용하기 위한 네임 스페이스



namespace OracleAutoBackup

{

    class Program

    {

        static void Main(string[] args)

        {

            string DAY = DateTime.Now.ToString("yyyyMMddHHmm");     



     //경로를 기재할때 절대 경롤 표시인 @ 를 넣지 않으면 오류가 발생했다.

    //  ("+ DAY +") 를 넣고 나니 [인식할 수 없는 이스케이프 시퀀스 입니다] 로 오류가 발생하였다. 그래서 @ 를 두개로..


            string Order = @"exp system/oracle file=H:\Oracle_Backup\oracle(" + DAY + ").dmp"+
                                @" log=H:\Oracle_Backup\oracle(" + DAY + ").log full=y";




            ProcessStartInfo proinfo = new ProcessStartInfo();

            Process pro = new Process();


            //실행할 파일명 입력 --cmd

            proinfo.FileName = @"cmd";


            //cmd 창 띄우기 - true(뛰우지 않기) false(띄우기)

            proinfo.CreateNoWindow = false;

            proinfo.UseShellExecute = false;


            proinfo.UseShellExecute = false;

            proinfo.RedirectStandardOutput = true; //cmd 창에서 데이터를 가져오기

            proinfo.RedirectStandardInput = true;   //cmd 창에서 데이터 보내기.

          //  proinfo.RedirectStandardError = true;   //cmd 창에서 오류내용 가져오기.


         //   pro.EnableRaisingEvents = false;

            pro.StartInfo = proinfo;

            pro.Start();


            //cmd 에 보낼 명령어를 입력한다.

            pro.StandardInput.Write(Order + Environment.NewLine);

            pro.StandardInput.Close();



            //결과 값을 리턴 받습니다.

            //string resultValue = pro.StandardOutput.ReadToEnd();



            //pro.WaitForExit();

            pro.Close();


            //Console.WriteLine(resultValue);


        }

    }

}