我知道通过使用“timeout”命令,我可以等待指定的时间;但我的问题是,如果这是一个可以被用户阻止的自动操作怎么办?我的意思是假设我想要执行操作A但是通过使用“timeout”命令我等待用户是否要取消此操作;例如,在此等待过程中,如果用户按下Enter键,则批处理脚本执行其他操作(不是操作A);
超时只是在动作之前引发延迟,而不是让用户选择某事.如果你还想使用它,你需要让用户按下Control-C在超时命令之前中断,并在此之后捕获ERRORLEVEL.
别的选择是你的朋友:
C:\Users\mm>CHOICE /T 10 /C yYcC /CS /D y /M "Press y to validate,c to Cancel. You have 10 sec delay [Default y]:" Press y to validate,c to Cancel. You have 10 sec delay [Default y]: [y,Y,c,C]?y
您可以使用ERRORLEVEL测试返回值.在这里,我没有按任何东西,所以y被选中(默认值通过/ D),ERRORLEVEL是1(第一个选项).但是没有显示倒计时.