|
yinjie1755
初级用户
积分 76
发帖 32
注册 2008-5-14
状态 离线
|
『楼 主』:
中国奥运!ZWzw19750516 的作品(VISTA下会出错!)
@echo off&color ec&mode con cols=50 lines=10
title 这是我们每一个中国人的心声!!!
echo.&echo.&echo.
echo 打倒一切阻挠奥运的反动势力,全力支持奥运!
echo.
for /l %%i in (1,1,100) do call,set cls=%%cls%%
goto one
:two
set n=2&set var=08-07&goto begin
:one
set n=1&set var=%date:~5,-4%
:begin
set month=%var:~1,1%&set number=29
set /a month-=1
for /l %%i in (1,1,%month%) do call :lp %%i
set /a number+=100%var:~3,2%%%100
set str=%str% %number%
if not %n% equ 2 goto two
for /f "tokens=1,2" %%i in ("%str%") do set /a day=%%j-%%i
set /a hm=100-1000%time:~9,2%%%1000,m=60-100%time:~6,2%%%100,f=60-100%time:~3,2%%%100,s=43-%time:~,2%
if %hm% equ 100 set /a hm-=100,m+=1
if %m% equ 60 set /a m-=60,f+=1
if %f% equ 60 set /a f-=60,h+=1
if %s% geq 24 set /a s-=24,day+=1
set /p= 离北京奥运开幕还有%day%天%s%小时%f%分%m%秒%hm%毫秒<nul
set /p=%cls%<nul
set n=0&set number=0
goto begin
:lp
for %%i in (1,3,5,7,8,10) do if %%i equ %1 set /a number+=31
for %%i in (4,6,9,11) do if %%i equ %1 set /a number+=30
===========================
@echo off&color 0a&mode con cols=50 lines=10
title 请输入您的OK代码
echo.
echo 请输入你的测试代码号
echo.
set/p a=
echo Operator:%a%>operator.log
echo.
echo 代码号为:%a%,请按任意键退出!
pause>nul2>nul
[ Last edited by yinjie1755 on 2008-5-31 at 12:25 AM ]
|
|
2008-5-31 00:24 |
|
|
terrytong
中级用户
积分 240
发帖 115
注册 2008-3-10
状态 离线
|
『第
2 楼』:
这个P为什么会退出啊?
看里面的程序,不知道是怎么退出的,应该是个死循环啊。
|
|
2008-6-2 15:36 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by terrytong at 2008-6-2 15:36:
看里面的程序,不知道是怎么退出的,应该是个死循环啊。 |
|
这个批本来就没设置退出,要退出直接关闭窗口就是的啊,再说这个批不设置成重复的循环是运行不了的。
----------------------------------------------------------------------------------------------------------
源码已优化在7楼。
[ Last edited by zw19750516 on 2008-6-3 at 12:37 PM ]
|
批处理之家新域名:www.bathome.net |
|
2008-6-2 17:51 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
4 楼』:
Quote: | Originally posted by yinjie1755 at 2008-5-31 00:24:
@echo off&color ec&mode con cols=50 lines=10
title 这是我们每一个中国人的心声!!!
echo.&echo.&echo.
echo 打倒一切阻挠奥运的反动势力,全力支 ... |
|
我写这个批的环境是xpsp2,也没用过vista,应该是系统时间的设置上会有所不同,所以才会出错。
|
批处理之家新域名:www.bathome.net |
|
2008-6-2 17:54 |
|
|
terrytong
中级用户
积分 240
发帖 115
注册 2008-3-10
状态 离线
|
『第
5 楼』:
它还是会自动退出啊?
运行了大概10秒钟就自动退出了,我想不通它是怎么退出的。
zw19750516兄,你能解释 一下吗?我想让它一直运行,除非是人为退出。谢谢!
|
|
2008-6-3 10:59 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by terrytong at 2008-6-3 10:59:
运行了大概10秒钟就自动退出了,我想不通它是怎么退出的。
zw19750516兄,你能解释 一下吗?我想让它一直运行,除非是人为退出。谢谢! |
|
是还有问题,退出时的报错信息为“输入行太长”,我将会处理并完善的,请等待。
|
批处理之家新域名:www.bathome.net |
|
2008-6-3 11:22 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
7 楼』:
已优化并做容错处理:
@echo off&color ac&mode con cols=50 lines=10&setlocal enabledelayedexpansion
title 这是我们每一个中国人的心声!!!
echo.&echo.&echo.
echo 打倒一切阻扰奥运的反动势力,全力支持北京奥运!
echo.
set "allday=31 29 31 30 31 30 31"
for /l %%i in (1,1,50) do call,set cls=%%cls%%
:begin
set /a month=%date:~6,1%,day=100%date:~8,2%%%100
for %%i in (%allday%) do (
set /a n+=1
if !n! geq %month% set /a days+=%%i
)
set /a days=days+8-day
set /a hm=100-1000%time:~9,2%%%1000,m=60-100%time:~6,2%%%100,f=60-100%time:~3,2%%%100,s=20-%time:~,2%
if %hm% lss 10 set hm=0%hm%
if %hm% equ 100 set /a hm-=100,m+=1
if %m% equ 60 set /a m-=60,f+=1
if %f% equ 60 set /a f-=60,h+=1
if %s% lss 0 set /a s+=24,days-=1
set /p= 离2008北京奥运开幕还有%days%天%s%小时%f%分%m%秒%hm%毫秒<nul
set /p=%cls%<nul
set n=0&set days=0&goto begin
[ Last edited by zw19750516 on 2008-6-4 at 12:02 AM ]
|
批处理之家新域名:www.bathome.net |
|
2008-6-3 12:16 |
|
|
terrytong
中级用户
积分 240
发帖 115
注册 2008-3-10
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by zw19750516 at 2008-6-3 12:16:
[code]
@echo off&color ac&mode con cols=50 lines=10&setlocal enabledelayedexpansion
title 这是我们每一个中国人的心声!!!
echo.&echo.&echo.
echo ... |
|
非常感谢zw19750516兄。
|
|
2008-6-3 12:36 |
|
|
terrytong
中级用户
积分 240
发帖 115
注册 2008-3-10
状态 离线
|
『第
9 楼』:
日期好像有问题啊
日期不对啊,跟本没有日期比较。
|
|
2008-6-3 14:17 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by terrytong at 2008-6-3 14:17:
日期不对啊,跟本没有日期比较。 |
|
要比较日期做什么啊,只要是天数和时间运算对了就可以了啊。
|
批处理之家新域名:www.bathome.net |
|
2008-6-3 14:53 |
|
|
26933062
银牌会员
积分 2268
发帖 879
注册 2006-12-19
状态 离线
|
『第
11 楼』:
终于想到一方法让倒计时与系统时间同步。
:
@echo off&setlocal enabledelayedexpansion
for /l %%a in (1 1 10) do set cls=!cls!
call :loop 0 99 sh 100
call :loop 0 59 sm 60
call :loop 0 59 sf 60
call :loop 0 24 ss 24
:ok
title 当前时间 %time%
set /p=!ss%time:~0,2%!:!sf%time:~3,2%!:!sm%time:~6,2%!.!sh%time:~-2%!%cls%<nul
goto ok
:loop
set "m=%4"
for /l %%a in (%1 1 %2) do (
set /a m-=1
if !m! lss 10 (set ma=0!m!) else set "ma=!m!"
if %%a lss 10 (set %30%%a=!ma!) else set "%3%%a=!ma!"
)
goto :eof
|
致精致简! |
|
2008-6-3 16:18 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
12 楼』:
Quote: | Originally posted by 26933062 at 2008-6-3 16:18:
终于想到一方法让倒计时与系统时间同步。
:[code]
@echo off&setlocal enabledelayedexpansion
for /l %%a in (1 1 10) do set cls=!cls!
call :loop 0 99 sh 100
call :loop 0 5 ... |
|
测试成功,厉害,学习了。
|
批处理之家新域名:www.bathome.net |
|
2008-6-3 16:43 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by 26933062 at 2008-6-3 16:18:
终于想到一方法让倒计时与系统时间同步。
:[code]
@echo off&setlocal enabledelayedexpansion
for /l %%a in (1 1 10) do set cls=!cls!
call :loop 0 99 sh 100
call :loop 0 5 ... |
|
楼兄 空格没处理吧
|
简单!简单!再简单! |
|
2008-6-3 18:58 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
14 楼』:
Quote: | Originally posted by 26933062 at 2008-6-3 16:18:
终于想到一方法让倒计时与系统时间同步。
@echo off&setlocal enabledelayedexpansion
for /l %%a in (1 1 10) do set cls=!cls!
call :loop 0 99 sh 100
call :loop 0 5 ... |
|
这样也可以 且空格也处理了
@echo off&setlocal enabledelayedexpansion
for /l %%a in (1 1 10) do set cls=!cls!
:lp
for /f "tokens=1-4 delims=:." %%i in ("%time: =%") do set/a t1=23-%%i,t2=59-(100%%j%%100),t3=59-(100%%k%%100),t4=100-(100%%l%%100)
if %t4% equ 100 set t4=0
for %%i in (t1 t2 t3 t4) do if !%%i! lss 10 set %%i=0!%%i!
title 当前时间 %time%
set/p=%t1%:%t2%:%t3%.%t4%%cls%<nul
goto lp
|
简单!简单!再简单! |
|
2008-6-5 00:12 |
|