Вопрос: Почему мои .BAT-файлы в Windows 7 не PAUSE правильно?


Я играю с написанием пакетных файлов на своем компьютере в течение некоторого времени, и я смущен тем, почему PAUSE не работает, как я думал (возможно, я просто делаю неправильный idk, просто очень смущен).

В основном я:

@echo off
echo Hello!
pause
echo Hi again!
pause
echo HEY HEY!!
pause

и когда он работает, я получаю:

Hello!
Press any key to continue...

Затем я нажимаю только одну клавишу, и это происходит:

Hi again!
Press any key to continue...
HEY HEY!!
Press any key to continue...

Я не понимаю, почему он пропускает вторую ПАУЗА ... Я заметил, что если бы мне пришлось делать:

@echo off
echo Hello!
pause
echo Hi again!
pause
pause
echo HEY HEY!!
pause

то он остановится на «Привет!». против его выполнения без паузы (однако он будет печатать «Нажмите любую клавишу, чтобы продолжить ...» два раза подряд)

Я просто потерялся и не могу продолжить свою жизнь, пока не узнаю, почему это происходит:


5
2017-10-31 16:45


Источник


Он работает так, как ожидалось для меня (в Windows 7), вы уверены, что у вас нет проблемы с клавиатурой? Если вы завершите аргумент эха в кавычках, будет ли он работать по-другому? (т. е. эхо «Привет!», эхо «Привет снова» и т. д.) - Ƭᴇcʜιᴇ007
Позвольте мне попробовать это сейчас ... и у меня нет проблем с клавиатурой, он будет пропустить эту паузу, и никто другой - Ryan Bollinger
Знаешь, я чувствую себя действительно глупо, любой ключ, который я ударил другим, тогда стрелка вниз заставляет его работать нормально ..... jeez Я не могу поверить, что я потратил 2 часа, пытаясь понять это впустую xD - Ryan Bollinger
Yup, ударяя любую клавишу со стрелкой, делает то же самое для меня, что и вы видели. Хороший улов. Получите привычку использовать Enter. ;) - Ƭᴇcʜιᴇ007


Ответы:


Он работает как ожидалось. pause оператор просто ждет ввода. Единственный переключатель - скрыть тот факт, что он ждет нажатия клавиши.

Когда я запускаю последний пакетный файл, который вы показывали, я вижу следующее:

C:\Users\asdf\Desktop>more test.bat
@echo off
echo Hello!
pause
echo Hi again!
pause
pause
echo HEY HEY!!
pause

C:\Users\asdf\Desktop>test
Hello!
Press any key to continue . . .
Hi again!
Press any key to continue . . .
Press any key to continue . . .
HEY HEY!!
Press any key to continue . . .

Поэтому мне трудно понять, о чем вы просите ...


0
2017-10-31 16:49



Это не объясняет, почему второй оператор пропускается. - Jim G.
Мне не нужно два последовательных заявления PAUSE после «Привет!» Я в основном спрашиваю, почему 1 ПАУЗА не работает. - Ryan Bollinger
Вот как он работает в Windows 7 ... - Canadian Luke
@JimG. Как вы можете видеть из комментариев OP выше, это ожидаемое поведение - Canadian Luke