Board logo

标题: [特效代码] 批处理怎样显示倒计时秒数同时能按任意键继续及SET /P 默认是Y? [打印本页]

作者: wolfan    时间: 2011-11-4 16:59     标题: 批处理怎样显示倒计时秒数同时能按任意键继续及SET /P 默认是Y?

本帖最后由 pcl_test 于 2017-4-13 10:29 编辑

1、 set /p ??= n秒后退出,或任意键继续:
2、 set /p ??= yes or no? : y

1、想在SET /P的那里有计时或倒计时的提示特效。
2、想SEP /P 的输入中默认有个“Y”

这应该是让BAT进行多线程吧。
想要几个简单的示例,琢磨了半天也没有弄出,之家的贴子多找过了,可就是没弄出来,故来求之。
作者: 601997526    时间: 2011-11-4 20:37

不明白LZ什么意思,计时同时任意键继续这种贴子应该有很多吧
不明白LZ说的输入中默认有个“Y”这句是什么意思
作者: cjiabing    时间: 2011-11-4 20:48

还是学学基础知识,实在不行就学习搜索。
作者: cjiabing    时间: 2011-11-4 20:48

还是学学基础知识,实在不行就学习搜索。
作者: CrLf    时间: 2011-11-4 22:18

看看有没有 choice 命令?
或者这样:
  1. @echo off&setlocal enabledelayedexpansion
  2. set input=y
  3. %1 goto input
  4. (del input.txt
  5. for /l %%a in (10 -1 1) do (
  6. if not exist input.txt ping /n 2 127.1&title 倒数%%a秒<nul>con
  7. )
  8. if exist input.txt (title  ) else taskkill /f /fi "windowtitle eq 管理员:  input*" /im cmd.exe&set input>con
  9. pause&exit
  10. )>nul 2>nul
  11. :input
  12. start /b "" %0 :
  13. title input
  14. set /p input=Input:
  15. echo !input!>input.txt
  16. set input
  17. pause>nul
复制代码

作者: wolfan    时间: 2011-11-4 23:48

基础就这样了,学了半天还是一个样啊。。。

默认Y 就是  set /p 的提示信息那里    “是否要继续?(Y/N):’Y‘”  这个Y, 正常默认是空吗,现在要有这个Y(或者其它)
作者: Endnext    时间: 2011-11-5 01:02

本帖最后由 Endnext 于 2011-11-5 01:04 编辑
1、 set /p ??= n秒后退出,或任意键继续:
2、 set /p ??= yes or no? : y

1、想在SET /P的那里有计时 ...
wolfan 发表于 2011-11-4 16:59


    楼主,我想你的语文老师现在应该是痛哭失声了吧。

    “set /P”是个变量赋值用的命令,一般用echo来进行文字提示,假如 “set /P”兼顾提示也可以。

    至于倒计时,最好的方法是调用系统时间来倒计时,并输出,可惜我学艺不精不知道怎样写。

    以下这段代码同时实现楼主所提到的两点功能,另外倒计时里使用“ping -n ? 0 >nul”进行实现,?为秒数,自己填,因为是无脑代码,倒计时最好不要超过3秒(因为要写3次会让别人觉得你很笨的),最好调用系统时钟来输出倒计时,我学艺不精就先用无脑代码实现了。
  1. ......            ←前面代码属于你自己写的内容,这里省略。
  2. set /p input=2秒后退出程序,是否明白?[ Yes / No ]:   
  3. if /i "%input%" == "y" goto End
  4. if /i "%input%" == "n" goto Next
  5. ......            ←后面代码属于你自己写的内容,这里省略。
  6. :End
  7. echo/
  8. echo =============================================================================
  9. echo/
  10. echo                              距离退出还有2秒
  11. echo/
  12. echo =============================================================================
  13. ping -n 1 0 >nul                   ←第一次倒计时。
  14. echo/
  15. echo =============================================================================
  16. echo/
  17. echo                              距离退出还有1秒
  18. echo/
  19. echo =============================================================================
  20. ping -n 1 0 >nul                 ←最后一次倒计时。
  21. exit                 ←退出命令行。
复制代码

作者: Hello123World    时间: 2011-11-8 16:31

set /p 不具备这种功能,用choice吧。
作者: powerbat    时间: 2011-11-8 21:32

设一个默认值不就行了?
  1. set var=y
  2. set /p var=yes or no? [y]
复制代码
原理很简单:set /p 直接回车时不改变原来的值。
作者: cjiabing    时间: 2011-11-8 21:54

本帖最后由 cjiabing 于 2011-11-8 21:58 编辑

楼主的意思是SET  /P有一个默认的自己确定的开关,就是:
  1. @echo off
  2. set /p  var=输入:
  3. if  %var%==n  goto end
  4. echo Ok or Yes——什么都没输入,就自动进入“YES”
  5. pause
  6. :end
  7. echo no
  8. pause
复制代码
但实际上没有这么一个选项,只有思路,所以,楼主还是回去学基础。
另外,为了避免你继续被误导,我还是建议你搜索论坛:
任意键 倒计时 site:www.bathome.net
http://www.bathome.net/search.php?searchid=25&orderby=lastpost&ascdesc=desc&searchsubmit=yes




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2