В C # это простой способ использовать System.Diagnostics для работы.Как!?
Обычно каждая пакетная команда представляет собой файл .exe, поэтому вы можете запустить его в отдельном процессе.
Некоторый код:
using System.Diagnostics;
static void Main()
{
Process batch;
batch = Process.Start("ping.exe", "localhost");
batch.WaitForExit();
batch.Close();
batch = Process.Start("choice.exe", "");
batch.WaitForExit();
batch.Close();
batch = Process.Start("ping.exe", "localhost -n 10");
batch.WaitForExit();
batch.Close();
}
Не нужно запускать каждую команду в отдельном процессе, решение заключается в простом перенаправлении потока.
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"cmd.exe"; // Specify exe name.
startInfo.UseShellExecute = false;
startInfo.ErrorDialog = false;
startInfo.RedirectStandardInput = true;
//
// Start the process.
//
Process process = Process.Start(startInfo);
string[] batchFile = {"ping localhost", "ping google.com -n 10", "exit"};
int cmdIndex = 0;
while (!process.HasExited)
{
if (process.Threads.Count == 1 && cmdIndex < batchFile.Length)
{
process.StandardInput.WriteLine(batchFile[cmdIndex++]);
}
}