我正在 Windows 11 上的 Visual Studio Code 中编写 C# 代码,以从我的 WSL Ubuntu 运行应用程序并将输出保存为字符串文件。我已经安装了 WSL 和 Ubuntu。当我编写以下内容时...
我正在 Windows 11 上的 Visual Studio Code 中编写 C# 代码,以从我的 WSL Ubuntu 运行应用程序并将输出保存为字符串文件。
我已经安装了 WSL 和 Ubuntu。当我在 WSL Ubuntu 终端上直接输入以下命令时,它们会产生预期的结果。
root@DESKTOP-JCGMG2B:~# cd ENHSP-Public/
root@DESKTOP-JCGMG2B:~/ENHSP-Public# java -jar enhsp-dist/enhsp.jar -o Domain-numerical.pddl -f Problem-numerical.pddl -ha true -s wastar -h hmrp -wh 4
为了从我的 VSCode 运行这两个命令,我编写了以下函数:
public static string RunWSLCommand(string command)
{
var startInfo = new ProcessStartInfo
{
FileName = "wsl",
Arguments = $"-d Ubuntu -e \"{command}\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true
};
var process = new Process
{
StartInfo = startInfo
};
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return output;
}
不幸的是,我只有在使用该 "ls"
命令时才会获得输出。例如,该命令 "cd ~; ls"
不产生任何输出。
有人能帮我吗?如何使用此 C# 函数从 Ubuntu 正确执行我的应用程序?
谢谢。
我也尝试过将 bash 文件作为输入。但是它不起作用,我不明白为什么。