启动pig grunt shell并使用c#执行命令

时间:2014-10-16 04:50:30

标签: apache-pig interactive-shell

我正在使用c#在pig grunt shell上实现命令的执行。我可以使用以下代码通过c#程序启动grunt shell:

proc = new Process {StartInfo = new ProcessStartInfo
                    {
                        FileName = PIG_BIN + "\\pig.cmd",                
                        UseShellExecute = false,
                        RedirectStandardError = true ,
                        RedirectStandardOutput = true,
                        RedirectStandardInput = true,
                        CreateNoWindow = true
                    }
                };

我通过以下方法和事件阅读输出和错误:

     proc.OutputDataReceived += proc_OutputDataReceived;
  proc.BeginOutputReadLine();
  proc.ErrorDataReceived += proc_ErrorDataReceived;
  proc.BeginErrorReadLine();

但是,我无法从grunt shell读取输出行。但是,只有“grunt>”之前的行是独自阅读。

我通过以下命令将参数传递给grunt shell,

proc.StandardInput.WriteLine("dump a;");

我也无法将参数传递给grunt shell。当我们启动grunt shell时启动java进程。如果我在命令提示符下结束java.exe,则会触发“OutputDataReceived”事件并且“grunt>”得到了。

我希望grunt作为一个java进程运行,因此我们无法传递和接收它的参数。有没有办法实现呢?

0 个答案:

没有答案