0
我有一个可执行文件(购买的工具),它接受它自己的脚本语言形式。我想用我们自己的代码包装该可执行文件以改进功能。如何通过标准输入将脚本通过标准输入作为参数传递给可执行文件
除了创建临时脚本文件并将其作为参数传递外,是否有一种可接受的方式在C#中执行此操作?
目前我想是这样的:
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName = "PathToExe";
psi.RedirectStandardInput = true;
using (System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi))
{
using (System.IO.StreamWriter stdin = p.StandardInput)
{
stdin.Write("script line one");
stdin.Write("script line two");
stdin.Flush();
}
p.WaitForExit(10000);
}
任何帮助是非常感谢!
代码是对的 - 你可能想说明什么是代码中的问题......请注意,如果工具打印任何需要读取输出的内容,否则它将简单地“挂起”,等待输出消耗。 –
我会尽力实现阅读部分。现在的问题是没有任何反应。如果我从命令行(使用物理脚本)运行相同的命令,它将处理命令并输出文件。从项目它将运行并结束,没有创建文件。脚本中的命令与我通过标准输入的命令是相同的。 – atatko
注意:为了简化调试,考虑构建简单地读取输入和写入输出(或文件)并使用它来代替“工具”的测试exe。 –