Следующая программа игнорирует первый вход, запросит снова и только затем примет вход.
@echo off
SETLOCAL
IF EXIST C:\Windows\notepad.exe (
:confirm
SET /P confirm="overwrite? yn "
echo entered: %confirm%
IF /I "%confirm%"=="y" GOTO overwrite
IF /I "%confirm%"=="n" GOTO no
GOTO confirm
:no
echo You selected no.
exit 1
:overwrite
echo You selected yes.
)
Ввод y<ENTER>
, y<ENTERY>
приведет к выводу:
overwrite? yn y
entered:
overwrite? yn y
entered: y
You selected yes.
Ввод y<ENTER>
, n<ENTER>
приведет к выводу:
overwrite? yn y
entered:
overwrite? yn n
entered: n
You selected no.
Я запускаю программу с cmd /k input-test.cmd
.
Удаление IF EXIST
удалит эту ошибку.