Выполнение команд cmd со сложным выводом в c# - PullRequest
0 голосов
/ 20 января 2020

Я часто использую различные команды на p c для проверки содержимого в системе, и я хотел в основном создать небольшой автономный exe-файл, который будет выполнять все мои общие команды и давать мне вывод каждой из них без я ввожу их вручную ... Хочу заметить, что я знаю, что это не первый вопрос в Google по поводу выполнения команды cmd с c#, но он не соответствует моим требованиям к командам, например, многие из них выполняют такие команды так как копировать или перемещать или делать, и ни один из них не имеет сложного вывода, я хочу выполнить, например, команду «sf c / scannow», которая выводит индикатор выполнения, который измеряет ход курса и окончательный вывод, проблему с этим, я попробовал много способов попробовать это, но все не удалось, выполнение оболочки очень хорошо работает с открытием еще одного cmd windows и даже требует повышения прав, но как только индикатор выполнения заканчивается, и он отображает окончательный результат, он падает (и таким образом, я не могу видеть окончательный вывод), с выполнением оболочки off (выполняется через главное окно), он либо вообще не отображает индикатор выполнения и просто показывает конечный результат, либо ничего не показывает, либо отображает индикатор выполнения, но с каждым шагом это новая строка, которая явно не не выглядишь правильно ...

это мой код:

public static void ExecuteCommand(string command) {
        Process prc = new Process();
        ProcessStartInfo info = new ProcessStartInfo
        {
            Verb = "runas",
            FileName = "cmd.exe",
            UseShellExecute = true,
            Arguments = "/c" + command
        };
        prc.StartInfo = info;
        prc.Start();
        prc.WaitForExit();
        prc.Close();
    }

если кто-то может придумать исправление, пожалуйста, скажите мне, что я застрял на этом около 3 дней .. .

1 Ответ

0 голосов
/ 21 января 2020

Оказывается, виновник был "/ c", если я изменю его на "/ K", windows останется открытым, пока я не закрою его вручную, как я хотел.

...