![Windows 命令行中模拟 Getchar() 吗?](https://linux22.com/image/1281210/Windows%20%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%B8%AD%E6%A8%A1%E6%8B%9F%20Getchar()%20%E5%90%97%EF%BC%9F.png)
我只需要从 cmd.exe 中读取 1 个字符(确切地说是数字)。这必须仅通过一次击键即可完成。这可能吗?不仅是 cmd.exe,我的意思是 Windows 中的所有标准实用程序(WinXP-Win7 支持)。
附言set /p val=request
不是我想要的。它读取字符串,不仅仅是 1 个字符,而且需要enter键。我需要一些类似的东西OnKeyDown
:读取 1 个字符并继续执行脚本,不需要enter。
答案1
不仅如此
cmd.exe
,我指的是 Windows 中的所有标准实用程序(WinXP-Win7 支持)。
为什么需要能够实现,比如说,edlin.exe
?这是一个荒谬的要求。
如果你想提示输入一个字符,输入后立即返回,那么你将不得不使用一些除了 Windows NT 5.1 自带的功能之外,还提供了额外的实用程序形式,即使它只是 MS-DOS 6.2choice.com
程序的 Win32 克隆版(作为 MS-DOS 程序,它当然不能在 x86-64 Windows 上运行)。
和JP Software 的 TCC/LE,这是一个替代命令解释器,内置INKEY
命令完全按照您的要求进行操作并可以这样使用:
inkey %%key
按下的键就会出现在key
环境变量中。
或者,在 Windows NT 4.0 Server 资源工具包中后来,微软提供了choice.exe
,它是 MS-DOS 的 Win32 克隆choice.com
。但请注意,这是服务器choice.exe
资源工具包。对于 Windows NT Server 5.2 及更高版本,与 Windows 捆绑在一起。不过,再次提醒大家,这是服务器Windows 版本。