标题: [特效代码] 批处理怎样显示倒计时秒数同时能按任意键继续及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 命令?
或者这样:- @echo off&setlocal enabledelayedexpansion
- set input=y
- %1 goto input
- (del input.txt
- for /l %%a in (10 -1 1) do (
- if not exist input.txt ping /n 2 127.1&title 倒数%%a秒<nul>con
- )
- if exist input.txt (title ) else taskkill /f /fi "windowtitle eq 管理员: input*" /im cmd.exe&set input>con
- pause&exit
- )>nul 2>nul
-
- :input
- start /b "" %0 :
- title input
- set /p input=Input:
- echo !input!>input.txt
- set input
- 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次会让别人觉得你很笨的),最好调用系统时钟来输出倒计时,我学艺不精就先用无脑代码实现了。- ...... ←前面代码属于你自己写的内容,这里省略。
- set /p input=2秒后退出程序,是否明白?[ Yes / No ]:
- if /i "%input%" == "y" goto End
- if /i "%input%" == "n" goto Next
- ...... ←后面代码属于你自己写的内容,这里省略。
-
- :End
- echo/
- echo =============================================================================
- echo/
- echo 距离退出还有2秒
- echo/
- echo =============================================================================
- ping -n 1 0 >nul ←第一次倒计时。
- echo/
- echo =============================================================================
- echo/
- echo 距离退出还有1秒
- echo/
- echo =============================================================================
- ping -n 1 0 >nul ←最后一次倒计时。
- exit ←退出命令行。
复制代码
作者: Hello123World 时间: 2011-11-8 16:31
set /p 不具备这种功能,用choice吧。
作者: powerbat 时间: 2011-11-8 21:32
设一个默认值不就行了?- set var=y
- set /p var=yes or no? [y]
复制代码
原理很简单:set /p 直接回车时不改变原来的值。
作者: cjiabing 时间: 2011-11-8 21:54
本帖最后由 cjiabing 于 2011-11-8 21:58 编辑
楼主的意思是SET /P有一个默认的自己确定的开关,就是:- @echo off
- set /p var=输入:
- if %var%==n goto end
- echo Ok or Yes——什么都没输入,就自动进入“YES”
- pause
- :end
- echo no
- pause
复制代码
但实际上没有这么一个选项,只有思路,所以,楼主还是回去学基础。
另外,为了避免你继续被误导,我还是建议你搜索论坛:
任意键 倒计时 site:www.bathome.net
http://www.bathome.net/search.php?searchid=25&orderby=lastpost&ascdesc=desc&searchsubmit=yes
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |