Как правильно перенаправить вывод консоли в строку?
Привет
Я работаю с Windows Form с командными строками. Я пытаюсь перенаправить вывод консоли на строку правильно, чтобы я мог захватить текст с помощью регулярного выражения, но это не то, что я хотел, он просто выводит что-то вроде этого:
Microsoft Windows [Version 10.0.15063] (c) 2017 Microsoft Corporation. Alle rettigheder forbeholdes. D:\example\test >> "D:\example\test\log.txt" D:\example>aapt.exe dump badging <filepath> D:\example>
Видите ли, он выводит авторские права и мои входные данные. На самом деле он ничего не выводит из aapt.exe.
Это код, который я использовал
p.StartInfo.FileName = "cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.RedirectStandardInput = true; p.StartInfo.CreateNoWindow = true; p.Start(); p.StandardInput.WriteLine("aapt.exe dump badging \"" + path + "\""); p.StandardInput.Close(); string str = p.StandardOutput.ReadToEnd();
Что я уже пробовал:
Я попытался попробовать другие коды, которые нашел в интернете, но он делает то же самое, что и мой, выводит авторские права, версию и входные данные, не выводит ничего полезного. Нет ничего много полезной информации в интернете.
Мне всегда приходилось перенаправлять вывод консоли в файл в качестве обходного пути, например:
p.Start(); p.StandardInput.WriteLine("aapt.exe dump badging \"" + path + "\" >> \"" + logs + "\" 2>&1"); p.StandardInput.Close();
Таким образом, он выводит следующее без авторских прав, версии windows и моих входных данных
package: name='org.schabi.newpipe' versionCode='27' versionName='0.9.0' platformBuildVersionName='7.1.1' sdkVersion:'15' targetSdkVersion:'25' uses-permission: name='android.permission.INTERNET' uses-permission: name='android.permission.WAKE_LOCK' uses-permission: name='android.permission.ACCESS_NETWORK_STATE' uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' uses-permission: name='android.permission.SYSTEM_ALERT_WINDOW' application-label:'NewPipe' application-label-af:'NewPipe' ...
Надеюсь, вы сможете мне помочь.
Спасибо.
Richard MacCutchan
Ваш StartInfo.FileName
является cmd.exe
, но это должен быть полный путь aapt.exe
.