联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
:: TimeOut.bat - Test of timeout :: Will Sort - 18:52 2006-4-9 - MSDOS7.10/COMMAND@Win98 @echo off if "%1"=="" %0 : 9 8 7 6 5 4 3 2 1 if "%1"=="" goto end :TimeOutLoop cls echo Please choose 1~9: %2 choice /c123456789_ /t:_,1 > nul if not errorlevel 10 goto Chosen shift if not "%2"=="" goto TimeOutLoop :Chosen for %%e in (1 2 3 4 5 6 7 8 9) do if errorlevel %%e set _e=%%e if errorlevel 10 set _e= echo You choice: %_e% set _e= :end
Originally posted by martin325 at 2006-4-9 20:26: 刚刚测试了,发现没有达到预期效果,屏幕提示: Invalid time Enter new time
为什么config.sys能用MSDOS自身的计时器,而批处理不能调用呢?
@echo off set /a i = 10 :Timeout if %i% == 0 goto Next setlocal set /a i = %i% - 1 cls echo 当前选择时间: %i% call:Delay 1000此1000为延迟时间,以毫秒计算,,即1秒.作为引用下面延迟脚本的输入参数. goto Timeout goto End :Next cls & echo. echo 恭喜!倒计时测试成功! echo. pause & exit :End echo 很抱歉!倒计时测试没有成功! exit ::============================================================ :Delay @echo off & setlocal enableextensions enabledelayedexpansion echo WScript.Sleep %1 > %temp%.\tmp$$$.vbs echo %time%>nul cscript //nologo %temp%.\tmp$$$.vbs echo %time%>nul for %%f in (%temp%.\tmp$$$.vbs) do if exist %%f del %%f endlocal & goto :EOF
@echo off & setlocal enableextensions echo WScript.Sleep 1000 > %temp%.\tmp$$$.vbs set /a i = 10 :Timeout if %i% == 0 goto Next setlocal set /a i = %i% - 1 cls echo 当前选择时间: %i% cscript //nologo %temp%.\tmp$$$.vbs goto Timeout goto End :Next cls & echo. echo 恭喜!倒计时测试成功! echo. for %%f in (%temp%.\tmp$$$.vbs*) do del %%f pause & exit