我尝试运行命令并将输出变为字符串,以便我可以搜索字符串以检测是否发生了某种结果。
写入控制台的输出就好了
...
(bootloader)1
好的[0.028s]
完了。总时间:0.028s
但是,字符串结果始终为空行。我试着让它输出错误,但这只会导致没有打印到控制台上 我也尝试过类似问题的代码
var output = new StringBuilder();
var error = new StringBuilder();
cmd.OutputDataReceived += (o, e) => output.Append(e.Data);
cmd.ErrorDataReceived += (o, e) => error.Append(e.Data);
cmd.Start();
cmd.BeginOutputReadLine();
cmd.BeginErrorReadLine();
cmd.WaitForExit();
由于输出StandardError存在而导致无法输出,因此删除它只会导致与原始问题相同的问题。我几乎可以在这里找到许多其他的东西,但是无济于事。有人请帮忙。
这是我的代码:
ProcessStartInfo unlkinfo = new ProcessStartInfo("cmd.exe", "/C
fastboot flashing get_unlock_ability");
unlkinfo.CreateNoWindow = true;
unlkinfo.RedirectStandardOutput = true;
unlkinfo.UseShellExecute = false;
Process unlk= new Process();
unlk.StartInfo = unlkinfo;
unlk.Start();
String result = unlk.StandardOutput.ReadToEnd();
unlk.WaitForExit();
String BL1 = "(bootloader) 1";
if(result.Contains(BL1))
{
Console.WriteLine("Bootloader is unlocked!");
}
else
{
Console.WriteLine("Bootloader is locked!");
}