找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 34898|回复: 9

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

[复制链接]
发表于 2011-11-4 16:59:17 | 显示全部楼层 |阅读模式
本帖最后由 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进行多线程吧。
想要几个简单的示例,琢磨了半天也没有弄出,之家的贴子多找过了,可就是没弄出来,故来求之。
发表于 2011-11-4 20:37:54 | 显示全部楼层
不明白LZ什么意思,计时同时任意键继续这种贴子应该有很多吧
不明白LZ说的输入中默认有个“Y”这句是什么意思
发表于 2011-11-4 20:48:25 | 显示全部楼层
还是学学基础知识,实在不行就学习搜索。
发表于 2011-11-4 20:48:40 | 显示全部楼层
还是学学基础知识,实在不行就学习搜索。
发表于 2011-11-4 22:18:48 | 显示全部楼层
看看有没有 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
复制代码
 楼主| 发表于 2011-11-4 23:48:30 | 显示全部楼层
基础就这样了,学了半天还是一个样啊。。。

默认Y 就是  set /p 的提示信息那里    “是否要继续?(Y/N):’Y‘”  这个Y, 正常默认是空吗,现在要有这个Y(或者其它)
发表于 2011-11-5 01:02:21 | 显示全部楼层
本帖最后由 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                 ←退出命令行。
复制代码
发表于 2011-11-8 16:31:19 | 显示全部楼层
set /p 不具备这种功能,用choice吧。
发表于 2011-11-8 21:32:44 | 显示全部楼层
设一个默认值不就行了?

  1. set var=y
  2. set /p var=yes or no? [y]
复制代码
原理很简单:set /p 直接回车时不改变原来的值。
发表于 2011-11-8 21:54:04 | 显示全部楼层
本帖最后由 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 07:26 , Processed in 0.019955 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表