恢复键盘输入/禁用cmd提示符重定向



我正在做一个C#/Visual Studio项目,该项目从文件中获取输入,用它做一些事情,然后给出一个信息飞溅。 我遇到的问题来自想要将信息保留在屏幕上/无限期地保持程序打开。 通常我会使用简单的 Console.ReadLine(( 或 ReadKey((,但两者都不适用于重定向(属性/命令行参数下的程序<文件(。>

我尝试使用各种控制台命令,但它们似乎都没有关闭文件重定向并恢复"正常"输入。 命令提示符重定向无法做到这一点吗?

您的软件只有一个输入流,该输入流要么连接到命令行窗口(如果没有,则按需打开,然后在程序完成后关闭(或文件。您的程序无法控制此输入流,这由 Windows(命令外壳主机窗口(管理。

您可以手动打开cmd.exe并在其中启动程序,然后窗口将保持打开状态,或者使用cmd.exe /K "program.exe < file"一步完成此操作,或者重写软件以允许它使用某个参数打开文件本身,例如 program --in file .