Клавиши со стрелками дважды вызывают «паузу» в пакетных файлах Windows - PullRequest
8 голосов
/ 05 августа 2011

попробуйте это в другом пустом файле .bat:

@echo off
echo Try space and arrow-down
pause
echo 1
pause
echo 2
pause
echo 3
pause
echo 4
pause
echo 5

Почему любая из клавиш со стрелками вызывает две последовательные паузы, а пробел или буква - только одну?

Спасибо!Берс

Ответы [ 2 ]

9 голосов
/ 05 августа 2011

Я подозреваю, что пауза - это просто вызов _getch () , который блокируется до тех пор, пока не будет прочитан один символ ввода, но у которого есть предостережение "При чтении функциональной клавиши или клавиши со стрелкой каждая функция должен вызываться дважды; первый вызов возвращает 0 или 0xE0, а второй вызов возвращает действительный код ключа. "

3 голосов
/ 17 марта 2012

Вы можете обойти эту проблему:

PAUSE>NUL|SET /P =optional text

Благодаря http://www.dostips.com/forum/viewtopic.php?f=3&t=2726

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...