首页 > 解决方案 > 如何在批处理文件中禁用用户输入?

问题描述

这是代码:

@echo off
color 0a

    set /p object="Name an object (article included): "
    set /p person="Name a person: "
    set /p place="Name a place: "
    
    echo %person% decided it was a good idea to take %object% to %place%. It was not.
    set /p DUMMY=Hit Enter to proceed.

我想这样当Hit Enter to proceed部件出现时,你不能输入任何东西,直到你按下 Enter 键。

标签: batch-filecmd

解决方案


好的。set /P当用户在命令中输入“任何内容”作为响应时,当您说“程序可能会中断”时,也许您可​​能错了。无论如何,这段代码做你想做的事:

@echo off
setlocal EnableDelayedExpansion

rem Get a CR
for /F %%a in ('copy /Z "%~F0" NUL') do set "CR=%%a"

set /P "=Hit Enter to proceed. " < NUL

:getKey
set "key="
for /F "delims=" %%K in ('xcopy /W "%~F0" "%~F0" 2^>NUL') do (
   if not defined key set "key=%%K"
)
if "!key:~-1!" neq "!CR!" goto getKey

echo/
echo Proceeding...

推荐阅读