keijikk
2/9/2017 - 12:24 AM

コマンドプロンプトで実行する

コマンドプロンプトで実行する

public int CmdExecute(string convertCommand, out string stdOutput, out string stdError)
{
    var p = new Process
        {
            StartInfo =
                {
                    // ComSpec(cmd.exe)のパスを取得して、FileNameプロパティに指定
                    FileName = Environment.GetEnvironmentVariable("ComSpec"),
                    UseShellExecute = false, // 出力を読み取れるようにする
                    RedirectStandardOutput = true, // ウィンドウを表示しないようにする
                    RedirectStandardInput = false,
                    CreateNoWindow = true,
                    Arguments = @"/c " + convertCommand // コマンドラインを指定("/c"は実行後閉じるために必要)
                }
        };

    // 起動
    p.Start();

    // 出力を読み取る
    stdOutput = p.StandardOutput.ReadToEnd();
    stdError = p.StandardError.ReadToEnd();
    int exitCode = p.ExitCode;

    // プロセス終了まで待機する
    // WaitForExitはReadToEndの後である必要がある
    // (親プロセス、子プロセスでブロック防止のため)
    p.WaitForExit();
    p.Close();

    return exitCode;
}

public int CmdExecute( string convertCommand)
{
    string stdOutput, stdError;
    return CmdExecute(convertCommand, out stdOutput, out stdError);
}