Исходный код вики System.Diagnostics.Process
Версия 3.1 от Alexandr Fokin на 2022/06/07 14:21
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | Process.start: how to get the output? | ||
| 2 | https://stackoverflow.com/questions/4291912/process-start-how-to-get-the-output | ||
| 3 | |||
| 4 | EXECUTE A BASH SCRIPT VIA C#/.NET CORE | ||
| 5 | https://jackma.com/2019/04/20/execute-a-bash-script-via-c-net-core/ | ||
| 6 | |||
| 7 | ---- | ||
| 8 | |||
| 9 | Template | ||
| 10 | |||
| 11 | {{code language="c#"}} | ||
| 12 | ProcessStartInfo info = new ProcessStartInfo(); | ||
| 13 | // fill info ... | ||
| 14 | info.RedirectStandardOutput = true; | ||
| 15 | info.RedirectStandardError = true; | ||
| 16 | |||
| 17 | //token.ThrowIfCancellationRequested(); | ||
| 18 | using Process process = Process.Start(info); | ||
| 19 | try | ||
| 20 | { | ||
| 21 | await process.WaitForExitAsync(token); | ||
| 22 | } | ||
| 23 | catch (OperationCanceledException) | ||
| 24 | { | ||
| 25 | process.Kill(true); | ||
| 26 | await process.WaitForExitAsync(); | ||
| 27 | throw; | ||
| 28 | } | ||
| 29 | |||
| 30 | var outputString = await process.StandardOutput.ReadToEndAsync(); | ||
| 31 | var errorString = await process.StandardError.ReadToEndAsync(); | ||
| 32 | |||
| 33 | if (process.ExitCode == 0) | ||
| 34 | { | ||
| 35 | //Successe | ||
| 36 | } | ||
| 37 | else | ||
| 38 | { | ||
| 39 | //Error | ||
| 40 | } | ||
| 41 | {{/code}} |