Как сохранить вывод FINDSTR из C # в текстовый файл? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь запустить команду findstr из C # (Windows Forms).

Я обычно пробовал это в командной строке, она отлично работает.

string CD = @"P:\FIles";
Process p = new Process();
p.StartInfo = new ProcessStartInfo("findstr.exe");
p.StartInfo.Arguments = "-M -S" + " " + quote + txtSearch.Text + quote + " " + quote+"dummy.txt"+quote + " > " + "C:\\Temp\\results.txt" ;
p.StartInfo.WorkingDirectory = CD;
p.StartInfo.ErrorDialog = true;
p.StartInfo.UseShellExecute = false;

p.Start();

p.WaitForExit();

Я хотел бы сохранитьвывод в другой текстовый файл с указанным местоположением.

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

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете прочитать вывод консольного приложения, прочитав поток «StandardOutput».Но вам нужно установить для свойства StartInfo.RedirectStandardOutput значение «true».

В вашем случае:

    string CD = @"P:\FIles";
    Process p = new Process();
    p.StartInfo = new ProcessStartInfo("findstr.exe");
    p.StartInfo.Arguments = "-M -S" + " " + quote + txtSearch.Text + quote + " " + quote+"dummy.txt"+quote + " > " + "C:\\Temp\\results.txt" ;
    p.StartInfo.WorkingDirectory = CD;
    p.StartInfo.ErrorDialog = true;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardOutput = true;

    p.Start();

    p.WaitForExit();

    string sTest = p.StandardOutput.ReadToEnd();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...