C#からコマンドプロンプトのコマンドを実行するソースコードを紹介します。
/// <summary>
/// バッチコマンドを実行する
/// </summary>
/// <param name="executeCommand">コマンド文字列</param>
/// <param name="stdOut">標準出力</param>
/// <param name="stdErr">標準エラー出力</param>
/// <param name="exitCode">終了コード</param>
/// <returns>リターンコード</returns>
public static int ExecBatProcess(string executeCommand, out string stdOut, out string stdErr, out int exitCode)
{
stdOut = "";
stdErr = "";
exitCode = 0;
try
{
Process process = new Process();
ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe", "/c " + executeCommand);
processStartInfo.CreateNoWindow = true;
processStartInfo.UseShellExecute = false;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.RedirectStandardError = true;
process = Process.Start(processStartInfo);
process.WaitForExit();
stdOut = process.StandardOutput.ReadToEnd();
stdErr = process.StandardError.ReadToEnd();
exitCode = process.ExitCode;
process.Close();
return 0;
}
catch
{
return 16;
}
}
引数
- executedCommand
コマンドプロンプトで実行するコマンドと引数を指定します。バッチファイルパスでもOKです。
- stdOut
標準出力の内容を返します。
- stdErr
標準エラー出力の内容を返します。
- exitCode
コマンド実行後のリターンコードを返します。
使用例
public string batchStdOut;
public string batchStdErr;
public int batchExitCode = 0;
string batPath = @"D:\\uploads3.bat";
UEProcess.ExecBatProcess(batPath, out batchStdOut, out batchStdErr, out batchExitCode);
batPath に指定したバッチファイルを実行し、標準出力、標準エラー出力、リターンコードを取得します。
おすすめ本 c#コードレシピ集
c#コードレシピ集は、「文字列を大文字あるいは小文字に変換したい」や「Taskをキャンセルしたい」など逆引き的にコードの書き方を調べられるレシピ集です。
2021年8月に発売された本で、全部で385個のレシピが収録されています。
ジャンルは日付処理やLINQ、並列処理と非同期処理など幅広く記載されています。
Kindle対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。
リンク
コメント