Выполнение команды в Azure Bash из C # - PullRequest
0 голосов
/ 06 мая 2019

У меня есть среда Azure, которой мне нужно управлять через программу на C #. Чтобы правильно управлять средой, мне нужно выполнить некоторые .sh файлы. Я хочу сделать подпрограмму, чтобы команда выполнялась через определенное время, а также с некоторыми параметрами. В настоящее время я выполняю файл .sh вручную из командной строки.

Я ищу способ вызова файла .sh через C #. Однако я не смог найти никакой документации по этому поводу. Это возможно?

1 Ответ

0 голосов
/ 07 мая 2019

Нет команды exec для выполнения команд linux в C #.Вместо этого вы можете использовать «System.Diagnostics.ProcessStartInfo» и «System.Diagnostics.Process».Поскольку вам нужно запускать команды оболочки, невозможно использовать cmd, поэтому вы можете использовать cygwin в качестве приложения для их выполнения.

Следовательно, этот код работал,

ProcessStartInfo procStartInfo = new ProcessStartInfo(@"C:\cygwin\bin\bash.exe",command);

и затем

proc.StartInfo = procStartInfo;

proc.Start();

Полный код будет выглядеть так:

private void runCom(string command)
{
    ProcessStartInfo procInfo = new ProcessStartInfo("cmd", "/c" + command);
    startInfo.UseShellExecute = false;
    startInfo.CreateNoWindow = true;
    Process proc = new Process();
    proc.StartInfo = startInfo;
    proc.Start();
    proc.WaitForExit();
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...