コマンドプロンプトで実行する
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);
}