我正在写一段代码来执行一些针对wsl的命令,解析和阅读返回值很重要。
项目是.net核心控制台应用程序3.1
wsl2已在系统上启用
例如,列出我本地机器上所有可用的wsl图像时,我使用的是在另一个“相关”的SO帖子中提供的答案中找到的片段。
using (var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = @"cmd.exe",
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardInput = true,
CreateNoWindow = true,
}
})
{
proc.Start();
proc.StandardInput.WriteLine("wsl --list");
System.Threading.Thread.Sleep(500);
proc.StandardInput.Flush();
proc.StandardInput.Close();
proc.WaitForExit(5000);
var c = proc.StandardOutput.ReadToEnd();
Console.WriteLine(c);
Console.ReadLine();
}
现在预期输出应该是
我得到的是
如果我使用断点进行检查,我会在“var c”中得到这个
理想情况下,我希望能够有一个列表,其中包含2码头项目在C#中,改变等待时间没有帮助。
1条答案
按热度按时间qcbq4gxm1#
在ProcessStartInfo中,您必须设置
对于WSL的直接呼叫,另外使用: