我正在尝试将文件中的数据作为C#命令行参数传递,并遇到了问题。
ProcessStartInfo startInfo1 = new ProcessStartInfo();
startInfo1.FileName = @"myexe.exe";
startInfo1.UseShellExecute = false;
startInfo1.RedirectStandardOutput = true;
startInfo1.WindowStyle = ProcessWindowStyle.Hidden;
startInfo1.WorkingDirectory = @"C:\myfolder\";
startInfo1.Arguments = "-cmd1 x -cmd2 y < c:\\yesfile.txt";
问题出在 < c:\yesfile.txt ...
当我进行调试并抓取 .Arguments 并从命令行执行时,一切正常。但是在代码中运行时,出现了问题。
Invalid command line parameters: <
搜索了一下,我找不到从代码中传递数据的方法。我调用的exe文件不会将“y”作为命令行参数输入,所以我必须从文件中传递它以便像这样自动运行。
更新:如何获取标准输入并传入y(基于答案)- 确保你也设置了
RedirectStandardInput = true;
。 StreamWriter inputWriter = myProcess.StandardInput;
inputWriter.Write("y");
inputWriter.Flush();
inputWriter.Close();
startInfo1.UseShellExecute = true;
吧?<, >, |
由 shell (cmd) 处理。 - khachik