命令在通过c# . net应用程序调用时无法识别,但在直接调用时可以工作



我在linux上运行一个。net应用程序。我试图运行一个命令,运行一个shell脚本存在于linux。这是我在。net应用程序中的代码,调用命令:

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd";
startInfo.Arguments = "/C /bin/gnome-terminal -- sh -e /bin/MyScripts/script.sh";
process.StartInfo = startInfo;
process.Start();

错误提示

无法识别/bin/gnome-terminal——sh -e/bin/myscripts/script.sh作为内部或外部命令,可操作的程序或批处理文件

但是,如果我尝试直接在wine上运行该命令,该命令可以正常工作并执行脚本。我试过像这样直接运行它:

wine cmd /c /bin/gnome-terminal -- sh -e /bin/MyScripts/script.sh

使用以下命令在wine上运行应用程序:

wine Application.exe

所以我假设如果应用程序运行命令,它将以直接调用的方式被调用,那么为什么我看到这种不一致的行为?我做错了什么?我应该做什么更改才能使命令在应用程序中正常工作?

Try

startInfo.FileName = "cmd.exe";

相关内容

  • 没有找到相关文章

最新更新