[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
方法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 编辑 ]

TOP

不知道这个符合要求不
@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

TOP

@echo off
for /l %%i in (10 -1 0) do echo %%i
pause>nul

TOP

看看这个代码:
@echo off
for /l %%i in (10,-1,0) do (
::下面一句是起到了延迟时间的作用,什么也不输出。
for /l %%j in (10000,-1,0) do echo %%j>nul
echo %%i
)
pause

TOP

@echo off
set /p=<nul
for /l %%a in (10,-1,1) do echo %%a
pause>nul

怎么没特效的感觉阿!
郁闷!不会用set /p=<nul

TOP

  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 编辑 ]

TOP

  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 编辑 ]

TOP

set t=10
for /l %%i in (%t% -1 0) do echo 倒计时%%i&ping -n 2 127.1 >nul&cls

TOP

回复 64楼 的帖子

(*^_^*)

TOP

惨了,我的cmd帮助信息全变E文了,有没有办法改回来啊?

谢谢楼主的解释

[ 本帖最后由 nopr 于 2009-8-6 13:49 编辑 ]

TOP

回复 62楼 的帖子

if %t1% neq %t0%
关键是这句,根据测试秒位是否变化来判断是否走时一秒。
批处理之家论坛官方 QQ 群 :【当前人数/人数上限】【2009-07-08】
群①:43011867(181/200);群②:(暂缺数据);群③:66165582(120/200)。

TOP

原帖由 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%  


  亲自测试了,只是不明白为什么重复一次刚好一秒呢??

TOP

  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
复制代码
1

评分人数

    • wxcute: 原来是负负得正,速度慢了点。PB + 1

TOP

@echo off
for %%a in (10,9,8,7,6,5,4,3,2,1) do echo %%a
pause>nul

TOP

新手练习

@echo off & mode con cols=31 lines=15
title 倒计时

@echo.&@echo.&@echo.
@echo 倒计时开始:
setlocal enabledelayedexpansion
set num=10
:begin
if not !num! equ 0 for /f %%a in ("%num%")do (@echo %%a & ping /n 2 127.1>nul & set /a num-=1 & goto begin) else (pause>nul)
1

评分人数

    • wxcute: 记得用CODE把代码闭合起来阿。PB + 1

TOP

返回列表