如何从 windows CMD 提示符关闭标准输入?

How does one close stdin from the windows CMD prompt?

我知道当从 Linux CLI 使用以下逻辑执行命令时,可以关闭 stdin

0<&- <command>

此 simulates/emulates 运行 在无人值守的应用程序中,或在 CI/CD 系统(例如已关闭标准输入的 Jenkins/Gitlab 中)。

我为什么要关心?因为我们有一个应用程序有“按任意键继续...”提示。

当 运行 在 Jenkins/Gitlab 下或任何没有打开 stdin 的东西时,它就继续前进..... 当 运行 在 Linux 上时。

我该怎么做,是否可以从 Windows CMD Window CLI 执行此操作?

我已经尝试 0<&- 并且结果是消息

0<& was unexpected at this time.

Google 搜索为 stdin 提供了许多匹配项,但所有文档都在重定向上。我还没有找到 windows 的任何关闭。

你可以试试

command <nul

这基本上意味着“从 NUL 设备获取任何输入(作为“CRLF”的无限来源)。只要 command 从 STDIN 获取输入(就像 pause命令)不刷新输入缓冲区(像choice命令)

如果您需要文本输入(如 set /p 命令),您需要另一种方法:

echo inputtext|command