箭头键在Windows批处理文件中触发了两次“暂停”

8

在一个空的 .bat 文件中尝试以下内容:

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

为什么按箭头键会触发两次暂停,而按空格或字母只触发一次?
谢谢! bers

好问题,功能键/主页/插入键也是一样的。 - Alex K.
2个回答

9
我怀疑“暂停”只是一个调用_getch()的命令,它会阻塞直到读取到一个单一字符的输入,但需要注意的是,“当读取功能键或箭头键时,每个函数必须被调用两次;第一次调用返回0或0xE0,第二次调用返回实际的键码。”

4

1
解决问题并保留所有其他行为的实际代码是 pause>nul|set/p=Press any key to continue . . .&echo(。需要使用 echo( 将光标移动到下一行。 - dbenham
谢谢,这对我很有帮助! - A1rPun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接