我想在 C# 应用程序中生成数百个 .txt 脚本,启动 GnuPlot 并为我拥有的每个脚本生成 .png 图。
我可以使用以下代码从 C# 启动 GnuPlot:
Process gnuPlotProcess = new Process();
gnuPlotProcess.StartInfo = new ProcessStartInfo(@"C:\Program Files\gnuplot\bin\wgnuplot.exe");
gnuPlotProcess.Start();
当我尝试更改当前目录时出现第一个问题,在开始该过程之前添加这行代码:
gnuPlotProcess.StartInfo.Arguments = "cd '" + scriptsPath + "'";
现在 GnuPlot 没有启动。
第二个问题是在尝试传递“load 'script_xxx.txt'”命令时,我能够在 GnuPlot 的默认当前目录上进行测试。这是完整的代码(灵感来自Plotting graph from Gunplot in C#):
Process gnuPlotProcess = new Process();
gnuPlotProcess.StartInfo = new ProcessStartInfo(@"C:\Program Files\gnuplot\bin\wgnuplot.exe");
gnuPlotProcess.StartInfo.RedirectStandardInput = true;
gnuPlotProcess.StartInfo.UseShellExecute = false;
theProcess.Start();
StreamWriter sw = gnuPlotProcess.StandardInput;
sw.WriteLine("load '" + pathToScript + "'");
sw.Flush();
在 pathToScript 上找到的脚本应该创建一个 .png 文件,并且在直接从 gnuPlot 启动时可以工作。但是从代码来看,什么也没有发生。
任何帮助,将不胜感激。