[ 新手习题 4 ] 批处理循环十秒倒计时
要求:从 10 数到 0;方法不限;
不需要精确地按秒来显示,显示成 10 行也没关系。
[attach]569[/attach]
目的:掌握几种循环的用法
评分:可用不同方法,第一不同答案者 10 分;
答对有分,答错不扣分。
可参考:
for语句从入门到精通(for /l 部分)
[url=http://bbs.bathome.net/thread-2189-1-1.html]http://bbs.bathome.net/thread-2189-1-1.html[/url]
if 命令示例详解
[url=http://bbs.bathome.net/thread-55-1-1.html]http://bbs.bathome.net/thread-55-1-1.html[/url]
shift 命令详解
[url=http://bbs.bathome.net/thread-107-1-3.html]http://bbs.bathome.net/thread-107-1-3.html[/url]
[quote]
上一题:[ 新手练习 3 ] 简易密码登录
[url=http://bbs.bathome.net/thread-2492-1-1.html]http://bbs.bathome.net/thread-2492-1-1.html[/url]
下一题:[ 新手练习 5 ] 随机显示星期几
[url=http://bbs.bathome.net/thread-2564-1-1.html]http://bbs.bathome.net/thread-2564-1-1.html[/url]
[/quote]
[[i] 本帖最后由 wxcute 于 2008-11-17 11:34 编辑 [/i]] 只要知道循环命令for或goto 的基本用法就能解答此题了。
如果要有延时的效果,就要知道任何命令的运行都是要消耗时间的,想办法把命令的结果屏蔽掉就能有延时的效果。
如果要在同一行中显示就得要借助set /p了。
综合性题目,适合新手练功。。。 [color=white][code]@for /l %%a in (10,-1,0) do (echo %%a)[/code]
[code]@echo off
set "num=11 10 9 8 7 6 5 4 3 2 1 0"
call :print %num%
:print %num%
shift /1
echo. %1
if "%1" equ "" (echo OVER!&pause&exit) else (goto :print)[/code][/color]
[[i] 本帖最后由 BBCC 于 2008-11-10 21:04 编辑 [/i]] [code]@echo off
for /l %%i in (10,-1,1) do echo %%i
pause
[/code]刚看到,来练习一下
[[i] 本帖最后由 hlzj88 于 2008-11-10 22:36 编辑 [/i]] 延时不是很清楚。先试下一种了。[code]@echo off
for /l %%a in (10,-1,0) do @ping -n 2 127.1>nul>nul & echo %%a
pause[/code] [code]@IF NOT DEFINED DEBUG @ECHO OFF
SET A=
:LOOP
SET /A A+=1
ECHO %A%
PING -w 2 -n 2 127.0.0.1 >NUL 2>&1
IF %A% EQU 10 GOTO END
GOTO LOOP
:END
ECHO E.O.F.[/code] [code]@echo off
for /l %%a in (10,-1,1) do (
echo %%a
)
pause>nul[/code] [code]
@echo off
echo --------倒计时-------------
for /l %%i in (10,-1,0) do (echo %%i)
echo ---------------------------
pause>nul
[/code]
[[i] 本帖最后由 sd6733531 于 2008-11-16 08:14 编辑 [/i]] [code]@echo off
for /l %%i in (10 -1 0) do echo %%i
pause>nul[/code] @echo off
for /l %%a in (10,-1,0) do @ping -n 2 127.1>nul&cls & echo %%a
pause >nul [code]@echo off
for %%i in (10 9 8 7 6 5 4 3 2 1) do (
echo %%i
for /l %%i in (1 1 10) do (ping 1>nul)
cls
)
pause>nul[/code] @echo off
for /l %%i in (10 -1 1) do (
echo %%i
ping /n 1 127.1>nul
)
pause 我也来一下。。[code]@echo off
set /p a=请输入:
cls
for /l %%i in (%a% -1 0) do echo 离爆炸时间还有:%%i秒!----快跑----^>&ping -n 2 127.1 >nul&cls[/code] 学习与游戏并进(尽自己的努力把前面的知识加入进来):
@echo off
echo 正在进入倒计时10秒....请稍候....
for /l %%a in (10,-1,0) do ( echo %%a
if %%a equ 0 goto end
for /l %%b in (1 1 3600) do ver>nul)
%0&cls
:end
(mode con cols=60 lines=15
set c=00F53462B89AC7ED10
set /a num=%random%%%18
call set col=%%c:~%num%,2%%
COLOR %col%
echo.
echo.
echo 游戏正在装载中.......
ping -n 1 127.1>nul&goto end) [code]
echo off
set num=0
:start
cls
set /a num+=1
set str=10 9 8 7 6 5 4 3 2 1 0
for /f "tokens=%num% delims= " %%a in ("%str%") do (
echo.&echo %%a&ping -n 2 127.1>nul)
if not "%num%"=="11" goto start
echo 已经完成请按任意键退出
pause>nul
[/code] [code]@echo off&setlocal enabledelayedexpansion
color 1f&mode con cols=20 lines=12
echo.
set num=6 -1 2 -3 , 6 -1 2 -1 2 -1 , 6 -1 2 -1 2 -1 , 6 -1 2 -1 2 -1 , 6 -1 2 -3 # ^
6 -4 , 6 -1 4 -1 , 6 -4 , 12 -1 , 6 -4 # ^
6 -4 , 6 -1 4 -1 , 6 -4 , 6 -1 4 -1 , 6 -4 # ^
6 -4 , 12 -1 , 12 -1 , 12 -1 , 12 -1 # ^
6 -4 , 6 -1 , 6 -4 , 6 -1 4 -1 , 6 -4 # ^
6 -4 , 6 -1 , 6 -4 , 12 -1 , 6 -4 # ^
6 -1 2 -1 , 6 -1 2 -1 , 6 -4 , 10 -1 , 10 -1 # ^
6 -4 , 12 -1 , 6 -4 , 12 -1 , 6 -4 # ^
6 -4 , 12 -1 , 6 -4 , 6 -1 , 6 -4 # ^
9 -1 , 9 -1 , 9 -1 , 9 -1 , 9 -1 # ^
6 -4 , 6 -1 4 -1 , 6 -1 4 -1 , 6 -1 4 -1 , 6 -4 #
for %%i in (%num%) do (
set a=%%i&set b=!a:-=!
if "%%i"=="," echo.
if "%%i"=="#" ping/n 2 127.1 >nul&cls&echo.
if %%i lss 0 (for /l %%a in (1,1,!b!) do set/p=▓<nul) else (
for /l %%b in (1,1,!b!) do set/p= <nul
))[/code]
这个可以
@echo offecho 10&@ping 127.0.0.1 -n 2 >nul&cls
echo 9&@ping 127.0.0.1 -n 2 >nul&cls
echo 8&@ping 127.0.0.1 -n 2 >nul&cls
echo 7&@ping 127.0.0.1 -n 2 >nul&cls
echo 6&@ping 127.0.0.1 -n 2 >nul&cls
echo 5&@ping 127.0.0.1 -n 2 >nul&cls
echo 4&@ping 127.0.0.1 -n 2 >nul&cls
echo 3&@ping 127.0.0.1 -n 2 >nul&cls
echo 2&@ping 127.0.0.1 -n 2 >nul&cls
echo 1&@ping 127.0.0.1 -n 2 >nul&cls
echo 0&@ping 127.0.0.1 -n 2 >nul&cls
通过一天的学习,又写了一个;
[code]@echo off
echo 你的电脑马上就要被此程序摧毁。
ping 127.0.0.1>nul
cls
for /l %%b in (10,-1,0) do cls&echo 倒计时开始!!!%%b &for /l %%a in (10000,-1,0) do echo %%a>nul
color 1f&mode con cols=550 lines=270
:aaa
color 11
color 21
color 31
color 41
color 51
color 61
color 71
color 81
color 91
color a1
color b1
color c1
color d1
color e1
color f1
goto aaa
[/cpde]
修改了一下,希望能把被删除的分补过来...
[[i] 本帖最后由 xiong8707 于 2008-12-29 22:13 编辑 [/i]] **** 该帖被屏蔽 ****
回复 18 楼 [ xiong8707 ] 的帖子
请勿在新手区放恶作剧代码请及时修改,否则扣分。
迷糊
又不是真的把电脑摧毁... [code]@echo offset /p=倒计时 10 秒<nul
ping -n 2 127.1>nul
set /p= 9 <nul
ping -n 2 127.1>nul
for /l %%a in (8 -1 1) do (
set /p=%%a<nul
ping -n 2 127.1>nul
)[/code] @echo off
for /l %%f in (10 -1 1) do echo %%f
pause>nul @echo off
for /l %%a in (10 -1 1) do (
echo %%a
ping -n 2 127.1>nul
) @ECHO OFF
set /a m=11
:111
set /a m-=1
if %m% geq 1 echo %m%&goto 111
pause [code]
@echo off
color 0a
for /l %%a in (10 -1 1) do (
echo %%a
for /l %%a in (1 1 1000) do ver>nul
)
pause>nul
[/code] 虽然不一秒一个,但是也很慢
@echo off
for /l %%i in (10,-1,1) do (
for /l %%j in (10000,-1,1) do (echo %%j>nul)
echo %%i
)
pause>nul 为什么不能用ping命令?
ping了一个后echo一个10,ping 了下一个再echo一个9 。 。 。 。或者在for中镶嵌ping和echo也可以呀。 。 。 [code]@for /l %%a in (1,1,10) do echo %%b & ping -n 2 127.1>nul>nul & cls
pause[/code] @echo off
for /l %%a in (1,1,10) do (
for /l %%i in (1,1,99) do (
ver>nul
)
echo %%a
)
pause
觉的代码有一点毛病 怎么修改啊 呵呵
就这一段:
)
echo %%a
)