Проблема с запуском командного файла в приложении WinForms - PullRequest
0 голосов
/ 06 января 2019

В рамках моей программы мне нужно запустить командный файл.
Человек, для которого я делаю это, не хочет, чтобы кто-либо имел возможность просматривать пакетный скрипт, поэтому я попытался включить его в решение WinForms, но не могу запустить его, я просто получаю сообщение об ошибке тайм-аута .

1 Ответ

0 голосов
/ 06 января 2019

Michael

Вы можете сделать это двумя разными способами.

  1. Предоставить файл сценария в Process, но он предоставит ваш код как открытый в файле.

  2. Вы можете запустить командную строку вашим процессом и предоставить свой код в качестве аргумента.

    var p = new Process();
    p.StartInfo.FileName = "cmd.exe";
    p.StartInfo.Arguments = "/c mycmd.exe 2>&1";
    

OR

    var p = new Process();
    p.StartInfo.FileName = "cmd.exe";
    p.StartInfo.Arguments = @"/c dir \windows";
    p.StartInfo.CreateNoWindow = true;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardInput = false;
    p.OutputDataReceived += (a, b) => Console.WriteLine(b.Data);
    p.ErrorDataReceived += (a, b) => Console.WriteLine(b.Data);
    p.Start();
    p.BeginErrorReadLine();
    p.BeginOutputReadLine();
    p.WaitForExit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...