加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#:运行shell命令时出现问题

发布时间:2020-12-15 19:30:35 所属栏目:百科 来源:网络整理
导读:我正在尝试让 PHP解析器运行一个页面,然后将结果返回给我的服务器,但是当我通过我的代码运行命令时,它什么都不返回.我知道命令是正确的,因为如果我用相同的路径手动运行它,它工作正常.继承我的代码: var p = new Process{ StartInfo = new ProcessStartInfo
我正在尝试让 PHP解析器运行一个页面,然后将结果返回给我的服务器,但是当我通过我的代码运行命令时,它什么都不返回.我知道命令是正确的,因为如果我用相同的路径手动运行它,它工作正常.继承我的代码:

var p = new Process
{
      StartInfo = new ProcessStartInfo("C:xamppphpphp.exe",path)
      {
            RedirectStandardOutput = true,RedirectStandardError = true,UseShellExecute = false,CreateNoWindow = true
      }
};
var output = new StringWriter();
var error = new StringWriter();
p.OutputDataReceived += (sender,args) => output.WriteLine(args.Data);
p.ErrorDataReceived += (sender,args) => error.WriteLine(args.Data);
p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.WaitForExit();
if (p.ExitCode != 0)
{
      throw new Exception(string.Format(
          "PHP failed with the following output:{0}{1}",/* {0} */ Environment.NewLine,/* {1} */ error.GetStringBuilder().ToString()));
}
var res = output.GetStringBuilder().ToString();
Console.WriteLine(res);

编辑:
使用此当前代码,它会在没有输出的代码中抛出异常.

解决方法

设置WorkingDirectory路径

var p = new Process
            {
                StartInfo = new ProcessStartInfo("php",path)
                {
                    RedirectStandardOutput = true,CreateNoWindow = true,WorkingDirectory = workingDir
                }
            };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读