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

[ 新手习题 4 ] 批处理循环十秒倒计时

[复制链接]
发表于 2009-8-6 12:51:10 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (-9 1 -1) do (
  4.      set /a a=-1*%%i
  5.      echo !a!
  6.      ping /n 3 127.1 >nul &cls)
  7. pause>nul
复制代码

评分

参与人数 1PB +1 收起 理由
wxcute + 1 原来是负负得正,速度慢了点。

查看全部评分

发表于 2009-8-6 13:17:26 | 显示全部楼层
原帖由 inittab 于 2009-4-22 09:24 发表
不用ping .用%time% 比较精确@echo off
set /a t=10,t1=0
:begin
set t0=%t1%
set tt=%time%
set t1=%tt:~6,2%
if %t1% neq %t0% (set/p=%t%  


  亲自测试了,只是不明白为什么重复一次刚好一秒呢??
 楼主| 发表于 2009-8-6 13:41:33 | 显示全部楼层

回复 62楼 的帖子

if %t1% neq %t0%
关键是这句,根据测试秒位是否变化来判断是否走时一秒。
发表于 2009-8-6 13:48:03 | 显示全部楼层
惨了,我的cmd帮助信息全变E文了,有没有办法改回来啊?

谢谢楼主的解释

[ 本帖最后由 nopr 于 2009-8-6 13:49 编辑 ]
发表于 2009-8-6 14:41:45 | 显示全部楼层

回复 64楼 的帖子

发表于 2009-8-8 15:49:43 | 显示全部楼层
set t=10
for /l %%i in (%t% -1 0) do echo 倒计时%%i&ping -n 2 127.1 >nul&cls
发表于 2009-8-9 19:28:30 | 显示全部楼层
  1. @echo off
  2. for /l %%i in (10,-1,1) do (echo  倒计时: %%i &ping /n 3 127.0.0.1 >nul
  3. )
  4. pause>nul
复制代码

[ 本帖最后由 hs4814 于 2009-8-9 20:00 编辑 ]
发表于 2009-8-12 17:22:49 | 显示全部楼层

  1. @echo off
  2. set m=10
  3. :a
  4. echo %m%
  5. set /a m-=1
  6. ping -n 2 127.1>nul
  7. if %m%==0 echo 时间到&&pause>nul&exit
  8. cls
  9. goto a
复制代码

[ 本帖最后由 wayaoqiang 于 2009-8-17 21:02 编辑 ]
发表于 2009-8-15 05:07:06 | 显示全部楼层
@echo off
set /p=<nul
for /l %%a in (10,-1,1) do echo %%a
pause>nul

怎么没特效的感觉阿!
郁闷!不会用set /p=<nul
发表于 2009-8-19 12:42:19 | 显示全部楼层
看看这个代码:
@echo off
for /l %%i in (10,-1,0) do (
::下面一句是起到了延迟时间的作用,什么也不输出。
for /l %%j in (10000,-1,0) do echo %%j>nul
echo %%i
)
pause
发表于 2009-8-19 15:11:53 | 显示全部楼层
@echo off
for /l %%i in (10 -1 0) do echo %%i
pause>nul
发表于 2009-8-19 15:18:55 | 显示全部楼层
不知道这个符合要求不
@echo off
echo 10
ping /n 1 \\. >nul
cls
echo 9
ping /n 1 \\. >nul
cls
echo 8
ping /n 1 \\. >nul
cls
echo 7
ping /n 1 \\. >nul
cls
echo 6
ping /n 1 \\. >nul
cls
echo 5
ping /n 1 \\. >nul
cls
echo 4
ping /n 1 \\. >nul
cls
echo 3
ping /n 1 \\. >nul
cls
echo 2
ping /n 1 \\. >nul
cls
echo 1
ping /n 1 \\. >nul
cls
echo 0
ping /n 1 \\. >nul
cls
echo 没了
pause>nul
发表于 2009-8-25 19:48:00 | 显示全部楼层
方法1: 利用 PING
@echo off
set /a m=10
:loop
echo %m%
ping -n 2 127.0.0.1 >nul
set /a m=%m%-1
if %m%  EQU 0 goto end
goto loop
:end

方法2: 利用 循环判断 %TIME% 变量的秒数部分变化 但是要求 电脑要购快,至少应该在1秒内循环一次。
值得注意的是,SET /A 不能把 09,08,07 之类的数值正常赋值,必须把0去掉,因为系统会把09,08 之类的认为是文本变量。

@echo off
ECHO 10
set /a m=9
IF "%time:~6,1%"=="0"  (set /a t0=%time:~7,1% ) ELSE (set /a t0=%time:~6,2%)
:loop
IF "%time:~6,1%"=="0"  (set /a t=%time:~7,1% ) ELSE (set /a t=%time:~6,2%)
if %t% neq %t0% (set /a m=%m%-1 & set /a t0=%t% & echo %m%)
if %m% equ 0 goto end
goto loop
:end

[ 本帖最后由 DXSX 于 2009-8-26 11:14 编辑 ]
发表于 2009-9-14 18:32:06 | 显示全部楼层
@echo off
:agen
echo ----开心倒计时---------
for /l %%a in (10,-1,0) do @ping -n 2 127.1>nul&cls&echo %%a
echo 傻瓜你被耍啦 & @ping -n 3 127.1>nul&cls
goto agen
想问楼主如果我想让他只循环出现3次该怎么做
发表于 2009-9-24 16:50:24 | 显示全部楼层
@echo off
for /l %%a in (1,1,10) do (
for /l %%i in (1,1,1000) do echo.>nul
echo %%a
)
pause>nul

这样也可以,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 05:04 , Processed in 0.019740 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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