Отправка нескольких аргументов в cmd C#

В настоящее время у меня есть фрагмент кода, который открывает приглашение cmd с правами администратора. Что я не могу сделать, так это отправить пару команд для выполнения. В настоящее время у меня есть следующий код:

 var proc = new ProcessStartInfo();
 proc.UseShellExecute = true;
 proc.WorkingDirectory = @"C:\Windows\System32";
 proc.FileName = @"C:\Windows\System32\cmd.exe";
 proc.Verb = "runas";

 try
 {
      Process.Start(proc);
      Console.WriteLine("Successfully elevated!");
 }
 catch (Exception)
 {
      Console.WriteLine("Failed to elevate.");
 }

Как мне добавить несколько команд, например, что, если я захочу изменить каталог, а затем запустить исполняемый файл? Я уверен, что это что-то очень простое, что я пропустил. Я пробовал давать такие аргументы:

  proc.Arguments = "cd \\temp";

person user2177781    schedule 01.07.2015    source источник
comment
Если вы еще не прочитали его, msdn.microsoft.com/en-us/library/ может иметь для вас некоторую информацию   -  person sab669    schedule 01.07.2015
comment
возможный дубликат Отправка команд в приглашение cmd в C#   -  person Martin    schedule 01.07.2015


Ответы (1)


Вы можете вызвать .exe из заданного пути к файлу, используя процесс.

Как ответ в этом: Можете ли вы выполнить другой EXE-файл из консольного приложения C#?

РЕДАКТИРОВАТЬ: Если вам нужен каталог, из которого запускается программа, с temp в конце, вы можете сделать:

string filepath = Directory.GetCurrentDirectory() + @"\temp\programToRun.exe";
person Ryan Ward    schedule 01.07.2015
comment
Directory.GetCurrentDirectory() не возвращает каталог, в котором работает программа. Это верно только в том случае, если никогда не было вызова Directory.SetCurrentDirectory(). GetCurrentDirectory получает текущий рабочий каталог, а не каталог приложения. - person Ron Beyer; 01.07.2015
comment
Мне буквально нужно просто запустить эти 2 команды: cd \cports-x64, затем cports.exe /close * * * 1869 - person user2177781; 02.07.2015