c# コマンドプロンプトのコマンドを実行するc#プログラムソース

C#

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対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。

コメント

タイトルとURLをコピーしました