У меня есть командный файл, который запускает четыре команды
vsinstr -coverage hello.exe
vsperfcmd /start:coverage /output:run.coverage
hello
vsperfcmd /shutdown
Как я могу использовать С# для запуска четырех команд?
Запустите команды, используя Process.Start.
Пример
Использование переопределения Process.Start(string fileName, string arguments)
Process.Start("vsinstr", "-coverage hello.exe");
Process.Start("vsperfcmd", "/start:coverage /output:run.coverage");
Process.Start("hello");
Process.Start("vsperfcmd", "/shutdown");
Добавьте эту команду в пакетный файл и используйте приведенный ниже код для запуска
ProcessStartInfo startInfo;
System.Diagnostics.Process batchExecute;
startInfo = new ProcessStartInfo("batchFilePath");
startInfo.CreateNoWindow = true;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = true;
startInfo.Verb = "runas";
batchExecute = new System.Diagnostics.Process();
batchExecute.StartInfo = startInfo;
batchExecute.Start();
batchExecute.WaitForExit();
Verb
значение "runas"
, процесс будет повышен, включая все необходимые запросы UAC. Если вам не нужно повышать уровень, не устанавливайте это свойство (или устанавливайте его как "open"
).
Поскольку у вас уже есть пакетный файл, почему бы не запустить его с С# вместо запуска команд из него с С#? Например: Process.Start