[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] [已解决]批处理怎样实现倒计时+按任意键跳过?

本帖最后由 zhiyong_530 于 2011-6-23 16:49 编辑

求一个有倒计时,在倒计时结束后可以自动打开某个程序,在倒计时进行中按任意键可以跳这个步骤去执行另外某个程序的批处理。。。。谢谢谢谢谢谢谢谢谢谢
新手,多多指教。。。

4# cjiabing


谢谢!成功解决了!
新手,多多指教。。。

TOP

6# caruko
可遗憾的就是,现在XP上没见这鬼东西。这么重要的东西不懂微软怎么放弃了。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

  1. @echo off
  2. echo,start
  3. ping -n 2 127.1>nul
  4. rem 程序段
  5. rem 开始
  6. rem 倒计时时间
  7. set t=10
  8. :yanshi
  9. choice /c 0123456789ABCDEFGHIJKLMNOPQRSTWVUXYZ /n /M "按任意字母键退出,倒计时%t%秒" /t 1 /d %t:~-1%
  10. if %ERRORLEVEL% gtr 10 echo,中断&goto :jixu
  11. set /a t-=1
  12. if %t% gtr 0 goto :yanshi
  13. :jixu
  14. echo,继续
  15. rem 程序段
  16. rem
  17. rem end
复制代码

TOP

其实用choice更好,节省资源,但是无法做到“任意键”,只能是字母跟数字。

TOP

2# zm900612


这个俺之前试过了,因为俺弄的那个在这一段后面还有内容,所以并不能退出,只能跳过某一小段,希望大大能再给点指点,怎样改。。。
新手,多多指教。。。

TOP

以前自己编的:
  1. @echo off
  2. title 倒计时结束与按任意键中止&::by cjiabing&from http://hi.baidu.com/cjiabing
  3. echo;
  4. echo     导弹即将发射,开始15秒倒计时,取消请按任意键!
  5. call :DaoJiShi
  6. echo;
  7. echo;
  8. echo     你终止了倒计时。
  9. echo;    导弹没有发射出去,世界和平!
  10. echo;
  11. pause
  12. exit
  13. :DaoJiShi
  14. ::窗口显示倒计时,结束后自动退出。
  15. echo;
  16. set /p=    15 秒钟后自动退出,请按任意键继续. . .<nul
  17. if exist "%temp%\$0.tmp" del "%temp%\$0.tmp"
  18. start /b  "" cmd /c "(for /l %%a in (10,-1,0) do @if %%a lss 10 (for %%i in (0%%a) do @set /p= %%i <nul&title %%a&ping /n 2 127.0.1>nul&if exist "%temp%\$0.tmp" exit) else (@set /p= %%a <nul&title %%a&ping /n 2 127.0.1>nul&if exist "%temp%\$0.tmp" exit))&&(title KillDaoJiShi&for /f "skip=3 tokens=2" %%a in ('TASKLIST /FI "WINDOWTITLE  eq  KillDaoJiShi"   /FI "STATUS eq running"') do taskkill /f /t /pid %%a>nul 2>nul)"
  19. pause>nul
  20. cd.>"%temp%\$0.tmp"
  21. goto :eof
复制代码
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

这个在网上搜到的(不用注明出处了):

可定制任务,可定制输入按键。
  1. @echo off&if not "%1"=="" call%*&exit
  2. ::纯批实现等待指定输入
  3. :begin
  4. call:timeout 10 :tsk1 626 :tsk2
  5. :tsk1
  6. echo\&echo "默认计划"
  7. echo\&echo 按回车键退出
  8. exit
  9. :tsk2
  10. echo "自定义计划"
  11. pause
  12. exit
  13. :: /*----------------- timeout --------------------
  14. :timeout [:label1] [:LABEL2]
  15. setlocal&del/a/q %tmp%' 2>nul||(echo 未知错误!&pause&exit)
  16. start/b/REALTIME %~s0 :timeout_1 %1 %2 %3 %4
  17. :timeout_2
  18. set "v="
  19. set/p v=
  20. if %v%.==%3. title %ComSpec%&cd.>%tmp%'&endlocal&goto%4
  21. if exist %tmp%' exit ::没有输入,退出timeout
  22. goto:timeout_2
  23. :timeout_1 [:label1] [:LABEL2]
  24. for /l %%a in (%1 -1 0)do (
  25.   title 倒计时:%%a /输入:%3 跳过默认计划 %2/
  26.   if exist %tmp%' title %ComSpec%&exit
  27.   ping/n 2 127.1 >nul)
  28. title %ComSpec%&cd.>%tmp%'&goto%2
  29. :: --------------------- timeout -------------------*/
复制代码

TOP

start /b经典方案,不是我写的:
  1. @echo off
  2. echo %cmdcmdline%
  3. if "%~1"=="按任意键退出" goto :%1
  4. >"%temp%\.sub" cd.
  5. start "" /b %0 按任意键退出
  6. set 退格键=
  7. for /l %%a in (10 -1 1) do (
  8.      set /p =%退格键%%%a 秒后开始备份文件... [按任意键退出] <nul
  9.      if not exist "%temp%\.sub" exit
  10.      ping -n 2 127.1 >nul
  11. )
  12. echo,
  13. echo 备份完成。
  14. echo 按任意键退出...
  15. exit
  16. :按任意键退出
  17. pause >nul
  18. del "%temp%\.sub"
  19. exit
  20. pause
复制代码

TOP

返回列表