如何从 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
我知道当从 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