Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从handbrakecli--scan获取输出?_C#_Console_Handbrake - Fatal编程技术网

C# 如何从handbrakecli--scan获取输出?

C# 如何从handbrakecli--scan获取输出?,c#,console,handbrake,C#,Console,Handbrake,我正在开发一个c#程序,以循环播放我的Windows Media Center录制的电视节目(.wtv),并使用handbrake cli进行转换。我现在已经完成了所有工作,我还想利用--scan函数,这样我就可以根据输入文件定制音频和视频参数,而不是设置静态参数 这是我到目前为止的扫描结果,但我似乎找不到打印到控制台窗口的数据在哪里 var p = new Process(); var pSI = new ProcessStartInfo(); pSI.RedirectStandardOutp

我正在开发一个c#程序,以循环播放我的Windows Media Center录制的电视节目(.wtv),并使用handbrake cli进行转换。我现在已经完成了所有工作,我还想利用--scan函数,这样我就可以根据输入文件定制音频和视频参数,而不是设置静态参数

这是我到目前为止的扫描结果,但我似乎找不到打印到控制台窗口的数据在哪里

var p = new Process();
var pSI = new ProcessStartInfo();
pSI.RedirectStandardOutput = true;
pSI.UseShellExecute = false;
pSI.FileName = HandBrakeLocation;
pSI.Arguments = string.Concat(@"--scan -i ", '"', inputFile, '"');
pSI.WindowStyle = ProcessWindowStyle.Hidden;
p.StartInfo = pSI;
p.Start();
var stdout = p.StandardOutput;//streamreader
p.WaitForExit();
我认为p.StandardOutput可能会将控制台输出发送到stdout StreamReader变量,但我在对象中的任何地方都找不到它。我错过了什么


感谢您的时间和帮助。

您可以使用进程(流)的StandardOutput属性读取程序输出:


更多信息可以在MSDN上找到:

谢谢,但我尝试了,结果“output”中的值是空字符串。我刚收到一位同事提供的以下链接(他说这是我祈祷的答案),我回家后会尝试。我发现在使用Handbrake CLI时,大多数输出都会写入stderr而不是stdout。如果您使用
--json
选项,您仍然会得到正常的stderr输出,但是stdout上会有json。
var output = stdout.ReadToEnd();
p.WaitForExit();