首页 > 解决方案 > Macos上c#.net核心调用终端的奇怪问题

问题描述

当我使用 C# 执行 Mac OS 内置命令时,例如“ls”命令,我可以正常返回命令行结果如下:

string mediaInfo = "";
ProcessStartInfo start = new ProcessStartInfo("ls");
start.Arguments = "-i";
start.CreateNoWindow = false;
start.RedirectStandardOutput = true;
start.RedirectStandardInput = true;
start.UseShellExecute = false;
Process p=Process.Start(start);
StreamReader reader = p.StandardOutput;
string line = reader.ReadLine();
while (!reader.EndOfStream)
{
    line = reader.ReadLine();
    mediaInfo = line + mediaInfo;
}
p.WaitForExit();
p.Close();
reader.Close();
return mediaInfo;

上面的代码可以返回“ls”命令的执行结果,但是当我把“ls”命令改成“ffmpeg”时,什么都没有返回。代码如下:(我已经正确安装了ffmpeg,在命令行执行成功)

string mediaInfo = "";
ProcessStartInfo start = new ProcessStartInfo("ffmpeg");
start.Arguments = "-i";
start.CreateNoWindow = false;
start.RedirectStandardOutput = true;
start.RedirectStandardInput = true;
start.UseShellExecute = false;
Process p=Process.Start(start);
StreamReader reader = p.StandardOutput;
string line = reader.ReadLine();
while (!reader.EndOfStream)
{
    line = reader.ReadLine();
    mediaInfo = line + mediaInfo;
}
p.WaitForExit();
p.Close();
reader.Close();
return mediaInfo;

有人知道这是怎么回事吗?非常感谢!

标签: c#macos.net-core

解决方案


推荐阅读