HOWTO · Batch

C# でバッチ スクリプトを実行する

このチュートリアルでは、C# でバッチ スクリプトを実行する方法について説明します。

このページの内容

この記事では、ディレクトリからバッチ ファイルを実行できる C# プログラムを作成する方法について説明します。

C# でバッチ スクリプトを実行する

C# では、バッチ ファイルを実行する場合、プロセスとして機能します。 以下のサンプル コードに従って、C# プログラムを使用してバッチ スクリプトを実行できます。

System.Diagnostics.Process pros = new System.Diagnostics.Process();
pros.StartInfo.FileName = "C:\\MyDir\\simple.bat";
pros.StartInfo.WorkingDirectory = "C:\\MyWorkDir";
pros.Start();

上記のコード例では、simple.bat という名前のバッチ スクリプトを実行します。 ここでは、プロセスを開始する前に作業ディレクトリを設定する必要があります。

上記の例は、指定したディレクトリからバッチ ファイルを実行できるコードです。 次のスニペットでは、同じタスクを簡単に実行しています。

コード - C#:

using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace BatchLoader {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    private void Button_Click(object sender, EventArgs e) {
      // initialize empty process
      Process pros = null;
      try {
        string BatFileDir = string.Format(@"D:\");  // directory of the file
        pros = new Process();
        pros.StartInfo.WorkingDirectory = BatFileDir;
        pros.StartInfo.FileName = "Mybat.bat";  // batch file name to be execute
        pros.StartInfo.CreateNoWindow = false;
        pros.Start();  // run batch file
        pros.WaitForExit();
        MessageBox.Show("Batch file successfully executed !!");
      } catch (Exception ex) {
        Console.WriteLine(ex.StackTrace.ToString());
      }
    }
  }
}

まず、必要なすべてのパッケージをコードに初期化します。 次に、すべてのグラフィック コンポーネントを初期化します。

ボタンからバッチ ファイルを実行するアクションを提供します。 Process pros = null; という行で、空のプロセスを初期化します。

実行時エラーが発生する可能性があるため、コードの主要部分を例外ハンドラーに保持します。 行 string BatFileDir = string.Format(@"D:\"); を通して ファイルのディレクトリを含む文字列を取得します。

その後、新しいプロセスを宣言し、変数 BatFileDir で作業ディレクトリを初期化しました。 pros.StartInfo.FileName = "Mybat.bat"; という行でファイル名を設定します。 pros.StartInfo.CreateNoWindow = false;という行で新しいウィンドウを開くのを無効にします。

次に、pros.Start(); 行からバッチ ファイルを実行します。 行 pros.WaitForExit(); バッチファイルの実行が終了するまでプログラムを待機させます。

最後に、バッチ ファイルが正常に実行されたことを示すメッセージを MessageBox.Show("Batch file successfully executed !!"); という行でユーザーに表示しました。