标题: [特效代码] [已解决]电子数字显示当前时间的批处理怎样精简? [打印本页]
作者: qq105699129 时间: 2010-6-10 14:31 标题: [已解决]电子数字显示当前时间的批处理怎样精简?
本人是个批处理得菜鸟,自己编了一个用电子数字显示时间的批处理,但是只能竖着排下来,希望各位大侠帮我把那个数字用横着的办法排列,还有能不能帮我把代码简化一下,自己觉得代码太长了,谢谢?
效果图:
■
■
■
■
■
■ ■
■ ■
■■■
■
■
■ ■
■■■
■
■■■
■
■■■
■■■
■ ■
■■■
■ ■
■■■- @echo off
- title 电子数字显示当前时间
- color 17
-
- del /f /q /s w.txt >nul
- set g=%time:~0,1%
- set "a=■■■ ■ ■"
- ::set/p "g=第一个"
- if "%g%"=="1" goto 一
- if "%g%"=="2" goto 二
- if "%g%"=="3" goto 三
- if "%g%"=="4" goto 四
- if "%g%"=="5" goto 五
- if "%g%"=="6" goto 六
- if "%g%"=="7" goto 七
- if "%g%"=="8" goto 八
- if "%g%"=="9" goto 九
- if "%g%"=="0" goto 零
- :一
- set b=%a:~3,3%
- set c=%a:~3,3%
- set d=%a:~3,3%
- set e=%a:~3,3%
- set f=%a:~3,3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :二
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~2, 3%
- set f=%a:~0, 3%
- echo %b%>>w.txt
- echo %c%>>w.txt
- echo %d%>>w.txt
- echo %e%>>w.txt
- echo %f%>>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :三
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :四
-
- set b=%a:~5, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :五
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :六
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ping /n 2 127.0.0.1 >nul
- cls
- :七
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~3, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :八
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :九
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto s
- :零
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~5, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- :s
- echo.>>w.txt
- set "a=■■■ ■ ■"
- ::set/p "g=第二个"
- set g=%time:~1,1%
- if "%g%"=="1" goto 11
- if "%g%"=="2" goto 22
- if "%g%"=="3" goto 33
- if "%g%"=="4" goto 44
- if "%g%"=="5" goto 55
- if "%g%"=="6" goto 66
- if "%g%"=="7" goto 77
- if "%g%"=="8" goto 88
- if "%g%"=="9" goto 99
- if "%g%"=="0" goto 00
- :11
- set b=%a:~3,3%
- set c=%a:~3,3%
- set d=%a:~3,3%
- set e=%a:~3,3%
- set f=%a:~3,3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :22
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~2, 3%
- set f=%a:~0, 3%
- echo %b%>>w.txt
- echo %c%>>w.txt
- echo %d%>>w.txt
- echo %e%>>w.txt
- echo %f%>>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :33
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :44
-
- set b=%a:~5, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :55
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :66
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ping /n 2 127.0.0.1 >nul
- cls
- :77
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~3, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :88
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :99
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ss
- :00
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~5, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- :ss
- echo.>>w.txt
- echo ■ ■>>w.txt
- echo.>>w.txt
- set "a=■■■ ■ ■"
- ::set/p "g=第三个"
- set g=%time:~3,1%
- if "%g%"=="1" goto 1111
- if "%g%"=="2" goto 2222
- if "%g%"=="3" goto 3333
- if "%g%"=="4" goto 4444
- if "%g%"=="5" goto 5555
- if "%g%"=="6" goto 6666
- if "%g%"=="7" goto 7777
- if "%g%"=="8" goto 8888
- if "%g%"=="9" goto 9999
- if "%g%"=="0" goto 0000
- :1111
- set b=%a:~3,3%
- set c=%a:~3,3%
- set d=%a:~3,3%
- set e=%a:~3,3%
- set f=%a:~3,3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :2222
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~2, 3%
- set f=%a:~0, 3%
- echo %b%>>w.txt
- echo %c%>>w.txt
- echo %d%>>w.txt
- echo %e%>>w.txt
- echo %f%>>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :3333
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :4444
-
- set b=%a:~5, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :5555
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :6666
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ping /n 2 127.0.0.1 >nul
- cls
- :7777
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~3, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :8888
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :9999
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto ssss
- :0000
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~5, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- :ssss
- echo.>>w.txt
- set "a=■■■ ■ ■"
- ::set/p "g=第四个"
- set g=%time:~4,1%
- if "%g%"=="1" goto 111
- if "%g%"=="2" goto 222
- if "%g%"=="3" goto 333
- if "%g%"=="4" goto 444
- if "%g%"=="5" goto 555
- if "%g%"=="6" goto 666
- if "%g%"=="7" goto 777
- if "%g%"=="8" goto 888
- if "%g%"=="9" goto 999
- if "%g%"=="0" goto 000
- :111
- set b=%a:~3,3%
- set c=%a:~3,3%
- set d=%a:~3,3%
- set e=%a:~3,3%
- set f=%a:~3,3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :222
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~2, 3%
- set f=%a:~0, 3%
- echo %b%>>w.txt
- echo %c%>>w.txt
- echo %d%>>w.txt
- echo %e%>>w.txt
- echo %f%>>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :333
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :444
-
- set b=%a:~5, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :555
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :666
-
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :777
-
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~3, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :888
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :999
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- ::ping /n 2 127.0.0.1 >nul
- goto sss
- :000
-
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~5, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- echo %b% >>w.txt
- echo %c% >>w.txt
- echo %d% >>w.txt
- echo %e% >>w.txt
- echo %f% >>w.txt
- :sss
-
-
- cls
- type w.txt
-
- pause>nul
- del w.txt
- pause
复制代码
[ 本帖最后由 qq105699129 于 2010-6-16 13:02 编辑 ]
作者: 523066680 时间: 2010-6-10 19:48
LZ辛苦了。 仰望一下高高的楼层
作者: netbenton 时间: 2010-6-10 21:57
- @echo off&setlocal enabledelayedexpansion
- mode con:cols=56 lines=7
-
- ::定义时钟模版
- set T1=■■■ ■■■ ■■■ ■■■ ■■■ ■■■
- set T2=■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
- set T3=■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
- set T4=■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
- set T5=■■■ ■■■ ■■■ ■■■ ■■■ ■■■
-
- ::定义时分秒各数字替换模版时的位置
- set str=0 4 10 14 20 24
-
- ::定义数字模版
- set D1=■■■ ■ ■■■ ■■■ ■ ■ ■■■ ■■■ ■■■ ■■■ ■■■
- set D2=■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
- set D3=■ ■ ■ ■■■ ■■■ ■■■ ■■■ ■■■ ■ ■■■ ■■■
- set D4=■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
- set D5=■■■ ■ ■■■ ■■■ ■ ■■■ ■■■ ■ ■■■ ■■■
-
-
- :loop
- ::新开一个环境
- setlocal enabledelayedexpansion
-
- ::取时间到ti,并且进行小时小于10时为空处理
- set ti=%time: =0%
-
- ::分别处理替换各个数字,0 1 3 4 6 7 是数字在ti字符串的位置
- for %%a in (0 1 3 4 6 7) do (
-
- rem 调用子过程,根据时间数字,及在应改模版的位置,替换模版T[n]
- call :sub !ti:~%%a,1! !str!
-
- rem 循环一次str字符串丢掉前面的一项
- set str=!str:* =!
- )
-
- cls
- title 批处理电子钟 [!ti:~,8!]
- echo;
-
- ::显示电子钟
- for /l %%a in (1,1,5) do echo; !T%%a!
- ping -n 2 127.1 >nul
-
- ::结束当前循环境,恢复变量到初始状态
- endlocal
-
- goto :loop
-
- :sub
- ::%m% 为数字在字模串的位置,%2为要替换时钟模版的开始位,%n%为要替换时钟模版的结束位
- set /a m=%1*4,n=%2+3
-
- ::把D[n]相应数据放到T[n]相应的位置
- for /l %%a in (1,1,5) do (set T%%a=!T%%a:~,%2!!D%%a:~%m%,3!!T%%a:~%n%!)
- goto :eof
复制代码
作者: hanyeguxing 时间: 2010-6-11 12:11 标题: 回复 3楼 的帖子
楼上的版主使用ping -n 2 127.1 >nul ,降低了显示时间准确性。- @echo off&setlocal enabledelayedexpansion&mode con:cols=57 lines=7
- set Han1=■■■ ■ ■■■■■■■ ■■■■■■■■■■■■■■■■
- set Han2=■ ■ ■ ■ ■■ ■■ ■ ■■ ■■ ■■
- set Han3=■ ■ ■ ■■■■■■■■■■■■■■■ ■■■■■■■
- set Han4=■ ■ ■ ■ ■ ■ ■■ ■ ■■ ■ ■■
- set Han5=■■■ ■ ■■■■■■ ■■■■■■■ ■■■■■■■
- :hanye
- set Ye=%time: =0%&set Gu=!Ye:~7,1!
- for /l %%a in (1,1,5) do for %%b in (%Ye:~0,1%;%Ye:~1,1%;10;%Ye:~3,1%;%Ye:~4,1%;10;%Ye:~6,1%;%Ye:~7,1%) do set/a Xing=3*%%b&for %%c in (!Xing!) do set "Han=!Han!!Han%%a:~%%c,3! "
- title Hanyeguxing:!Ye:~,8!&cls&echo.!Han!&set Han=
- :Guxing
- set Ye=%time: =0%
- if %Ye:~7,1%==%Gu% (goto:Guxing)else goto:hanye
复制代码
[ 本帖最后由 hanyeguxing 于 2010-6-15 13:34 编辑 ]
作者: yangfengoo 时间: 2010-6-11 13:42
需要仰望楼主
作者: netbenton 时间: 2010-6-11 20:27
[四楼]的不错,代码简短,使用横向处理,与我的刚好相反,第一个代码显示有点慢,
现在的改得不错~~巧妙的利用了显示满行自动换行~~
引入模板压缩技术:
- @echo off&setlocal enabledelayedexpansion
-
- ::定义时钟模板
- set T=FCFCFC B6B6B4 B4B4B4 B6B6B4 FCFCFC
-
- ::定义数字模板
- set D=EBFBFFFC A89B21B4 ABFFF9FC AA1269A4 EBF3F9FC
-
- call :sub1 T 18 D 30 rem 模板解压还原
-
- set str=0 4 10 14 20 24
- mode con:cols=56 lines=7
-
- :loop
- setlocal enabledelayedexpansion
- set ti=%time: =0%
- for %%a in (0 1 3 4 6 7) do (
- call :sub !ti:~%%a,1! !str!
- set str=!str:* =!
- )
- cls
- title 批处理电子钟 [!ti:~,8!]
- echo;
- for /l %%a in (1,1,5) do echo; !T%%a:~,27!
- ping -n 2 127.1 >nul
- endlocal
- goto :loop
-
- :sub
- set /a m=%1*3,n=%2+3
- for /l %%a in (1,1,5) do set T%%a=!T%%a:~,%2!!D%%a:~%m%,3! !T%%a:~%n%!
- goto :eof
-
- :sub1 rem 模板解压代码
- set v=0
- for %%a in (!%1!) do (
- set s=%%a
- set/a v+=1
- set str=
- for /l %%b in (0,1,7) do for %%c in ("!s:~%%b,1!") do (
- set/a n=0x0%%~c
- for %%d in (8 4 2 1) do (
- set/a m=n/%%d, n=n%%%%d
- set str=!str!!m!
- ) )
- set str=!str:1=■!
- set str=!str:0= !
- set %1!v!=!str:~,%2!
- )
- shift&shift
- if "%1" neq "" goto :sub1
复制代码
作者: qq105699129 时间: 2010-6-14 12:49
多谢各位高手!
我现在也奉献上本人近日改良的电子数字显示当前时间的批处理:(不过代码还是很长!呵呵!)- @echo off
- title 电子数字显示当前时间
- color 17
- mode con cols=50 lines=7
- set "a=■■■ ■ ■"
- set g=%time:~0,1%
- call :w
- set g=%time:~1,1%
- call :ww
- set g=%time:~3,1%
- call :www
- set g=%time:~4,1%
- call :wwww
- echo.
- echo %b% %bb% %bbb% %bbbb%
- echo %c% %cc% ■ %ccc% %cccc%
- echo %d% %dd% %ddd% %dddd%
- echo %e% %ee% ■ %eee% %eeee%
- echo %f% %ff% %fff% %ffff%
- pause>nul
- goto :eof
- :w
- if "%g%"=="1" goto 一
- if "%g%"=="2" goto 二
- if "%g%"=="3" goto 三
- if "%g%"=="4" goto 四
- if "%g%"=="5" goto 五
- if "%g%"=="6" goto 六
- if "%g%"=="7" goto 七
- if "%g%"=="8" goto 八
- if "%g%"=="9" goto 九
- if "%g%"=="0" goto 零
- :一
- set b=%a:~3, 3%
- set c=%a:~3, 3%
- set d=%a:~3, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- goto s
- :二
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~2, 3%
- set f=%a:~0, 3%
- goto s
- :三
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- goto s
- :四
- set b=%a:~5, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- goto s
- :五
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- goto s
- :六
- set b=%a:~0, 3%
- set c=%a:~2, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- goto s
- :七
- set b=%a:~0, 3%
- set c=%a:~3, 3%
- set d=%a:~3, 3%
- set e=%a:~3, 3%
- set f=%a:~3, 3%
- goto s
- :八
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- goto s
- :九
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~0, 3%
- set e=%a:~3, 3%
- set f=%a:~0, 3%
- goto s
- :零
- set b=%a:~0, 3%
- set c=%a:~5, 3%
- set d=%a:~5, 3%
- set e=%a:~5, 3%
- set f=%a:~0, 3%
- :s
- goto :eof
- :ww
- if "%g%"=="1" goto 一
- if "%g%"=="2" goto 二
- if "%g%"=="3" goto 三
- if "%g%"=="4" goto 四
- if "%g%"=="5" goto 五
- if "%g%"=="6" goto 六
- if "%g%"=="7" goto 七
- if "%g%"=="8" goto 八
- if "%g%"=="9" goto 九
- if "%g%"=="0" goto 零
- :一
- set bb=%a:~3, 3%
- set cc=%a:~3, 3%
- set dd=%a:~3, 3%
- set ee=%a:~3, 3%
- set ff=%a:~3, 3%
- goto ss
- :二
- set bb=%a:~0, 3%
- set cc=%a:~3, 3%
- set dd=%a:~0, 3%
- set ee=%a:~2, 3%
- set ff=%a:~0, 3%
- goto ss
- :三
- set bb=%a:~0, 3%
- set cc=%a:~3, 3%
- set dd=%a:~0, 3%
- set ee=%a:~3, 3%
- set ff=%a:~0, 3%
- goto ss
- :四
- set bb=%a:~5, 3%
- set cc=%a:~5, 3%
- set dd=%a:~0, 3%
- set ee=%a:~3, 3%
- set ff=%a:~3, 3%
- goto ss
- :五
- set bb=%a:~0, 3%
- set cc=%a:~2, 3%
- set dd=%a:~0, 3%
- set ee=%a:~3, 3%
- set ff=%a:~0, 3%
- goto ss
- :六
- set bb=%a:~0, 3%
- set cc=%a:~2, 3%
- set dd=%a:~0, 3%
- set ee=%a:~5, 3%
- set ff=%a:~0, 3%
- goto ss
- :七
- set bb=%a:~0, 3%
- set cc=%a:~3, 3%
- set dd=%a:~3, 3%
- set ee=%a:~3, 3%
- set ff=%a:~3, 3%
- goto ss
- :八
- set bb=%a:~0, 3%
- set cc=%a:~5, 3%
- set dd=%a:~0, 3%
- set ee=%a:~5, 3%
- set ff=%a:~0, 3%
- goto ss
- :九
- set bb=%a:~0, 3%
- set cc=%a:~5, 3%
- set dd=%a:~0, 3%
- set ee=%a:~3, 3%
- set ff=%a:~0, 3%
- goto ss
- :零
- set bb=%a:~0, 3%
- set cc=%a:~5, 3%
- set dd=%a:~5, 3%
- set ee=%a:~5, 3%
- set ff=%a:~0, 3%
- :ss
- goto :eof
- :www
- if "%g%"=="1" goto 一
- if "%g%"=="2" goto 二
- if "%g%"=="3" goto 三
- if "%g%"=="4" goto 四
- if "%g%"=="5" goto 五
- if "%g%"=="6" goto 六
- if "%g%"=="7" goto 七
- if "%g%"=="8" goto 八
- if "%g%"=="9" goto 九
- if "%g%"=="0" goto 零
- :一
- set bbb=%a:~3, 3%
- set ccc=%a:~3, 3%
- set ddd=%a:~3, 3%
- set eee=%a:~3, 3%
- set fff=%a:~3, 3%
- goto sss
- :二
- set bbb=%a:~0, 3%
- set ccc=%a:~3, 3%
- set ddd=%a:~0, 3%
- set eee=%a:~2, 3%
- set fff=%a:~0, 3%
- goto sss
- :三
- set bbb=%a:~0, 3%
- set ccc=%a:~3, 3%
- set ddd=%a:~0, 3%
- set eee=%a:~3, 3%
- set fff=%a:~0, 3%
- goto sss
- :四
- set bbb=%a:~5, 3%
- set ccc=%a:~5, 3%
- set ddd=%a:~0, 3%
- set eee=%a:~3, 3%
- set fff=%a:~3, 3%
- goto sss
- :五
- set bbb=%a:~0, 3%
- set ccc=%a:~2, 3%
- set ddd=%a:~0, 3%
- set eee=%a:~3, 3%
- set fff=%a:~0, 3%
- goto sss
- :六
- set bbb=%a:~0, 3%
- set ccc=%a:~2, 3%
- set ddd=%a:~0, 3%
- set eee=%a:~5, 3%
- set fff=%a:~0, 3%
- goto sss
- :七
- set bbb=%a:~0, 3%
- set ccc=%a:~3, 3%
- set ddd=%a:~3, 3%
- set eee=%a:~3, 3%
- set fff=%a:~3, 3%
- goto sss
- :八
- set bbb=%a:~0, 3%
- set ccc=%a:~5, 3%
- set ddd=%a:~0, 3%
- set eee=%a:~5, 3%
- set fff=%a:~0, 3%
- goto sss
- :九
- set bbb=%a:~0, 3%
- set ccc=%a:~5, 3%
- set ddd=%a:~0, 3%
- set eee=%a:~3, 3%
- set fff=%a:~0, 3%
- goto sss
- :零
- set bbb=%a:~0, 3%
- set ccc=%a:~5, 3%
- set ddd=%a:~5, 3%
- set eee=%a:~5, 3%
- set fff=%a:~0, 3%
- :sss
- goto :eof
- :wwww
- if "%g%"=="1" goto 一
- if "%g%"=="2" goto 二
- if "%g%"=="3" goto 三
- if "%g%"=="4" goto 四
- if "%g%"=="5" goto 五
- if "%g%"=="6" goto 六
- if "%g%"=="7" goto 七
- if "%g%"=="8" goto 八
- if "%g%"=="9" goto 九
- if "%g%"=="0" goto 零
- :一
- set bbbb=%a:~3, 3%
- set cccc=%a:~3, 3%
- set dddd=%a:~3, 3%
- set eeee=%a:~3, 3%
- set ffff=%a:~3, 3%
- goto ssss
- :二
- set bbbb=%a:~0, 3%
- set cccc=%a:~3, 3%
- set dddd=%a:~0, 3%
- set eeee=%a:~2, 3%
- set ffff=%a:~0, 3%
- goto ssss
- :三
- set bbbb=%a:~0, 3%
- set cccc=%a:~3, 3%
- set dddd=%a:~0, 3%
- set eeee=%a:~3, 3%
- set ffff=%a:~0, 3%
- goto ssss
- :四
- set bbbb=%a:~5, 3%
- set cccc=%a:~5, 3%
- set dddd=%a:~0, 3%
- set eeee=%a:~3, 3%
- set ffff=%a:~3, 3%
- goto ssss
- :五
- set bbbb=%a:~0, 3%
- set cccc=%a:~2, 3%
- set dddd=%a:~0, 3%
- set eeee=%a:~3, 3%
- set ffff=%a:~0, 3%
- goto ssss
- :六
- set bbbb=%a:~0, 3%
- set cccc=%a:~2, 3%
- set dddd=%a:~0, 3%
- set eeee=%a:~5, 3%
- set ffff=%a:~0, 3%
- goto ssss
- :七
- set bbbb=%a:~0, 3%
- set cccc=%a:~3, 3%
- set dddd=%a:~3, 3%
- set eeee=%a:~3, 3%
- set ffff=%a:~3, 3%
- goto ssss
- :八
- set bbbb=%a:~0, 3%
- set cccc=%a:~5, 3%
- set dddd=%a:~0, 3%
- set eeee=%a:~5, 3%
- set ffff=%a:~0, 3%
- goto ssss
- :九
- set bbbb=%a:~0, 3%
- set cccc=%a:~5, 3%
- set dddd=%a:~0, 3%
- set eeee=%a:~3, 3%
- set ffff=%a:~0, 3%
- goto ssss
- :零
- set bbbb=%a:~0, 3%
- set cccc=%a:~5, 3%
- set dddd=%a:~5, 3%
- set eeee=%a:~5, 3%
- set ffff=%a:~0, 3%
- :ssss
- goto :eof
复制代码
作者: qq105699129 时间: 2010-6-14 13:06 标题: 回复 3楼 的帖子
高手!代码看不太懂。我想知道,你们是怎么学习批处理的?希望能指点一下
作者: netbenton 时间: 2010-6-14 19:36 标题: 回复 8楼 的帖子
你多看看教程,你似乎还不知道!号变量,也就是变量延迟。
然后做做论坛的题目,如教学版块的新手练功区的:新手练习题等
作者: Batcher 时间: 2010-6-14 20:28
推荐教程:批处理中的变量延迟扩展、变量嵌套
http://bbs.bathome.net/thread-2899-1-1.html
作者: qq105699129 时间: 2010-6-15 13:25 标题: 回复 9楼 的帖子
非常感谢!变量延迟是知道,就是不会应用!呵呵
作者: qq105699129 时间: 2010-6-15 18:05
得到启发,另一个电子数字显示当前时间。- @echo off
- :tt
- cls&setlocal enabledelayedexpansion
- title 电子数字显示当前时间[%time:~0,8%]
- color 17
- mode con cols=50 lines=7
- set H1=■■■ ■ ■■■■■■■ ■■■■■■■■■■■■■■■■
- set H2=■ ■ ■ ■ ■■ ■■ ■ ■■ ■■ ■
- set H3=■ ■ ■ ■■■■■■■■■■■■■■■ ■■■■■■■
- set H4=■ ■ ■ ■ ■ ■ ■■ ■ ■■ ■ ■
- set H5=■■■ ■ ■■■■■■ ■■■■■■■ ■■■■■■■
- ::截取时间的六位数,分别乘以3,得到各个相应的电子数字
-
- set/a b=%time:~0,1%*3
- set/a c=%time:~1,1%*3
- set/a d=%time:~3,1%*3
- set/a e=%time:~4,1%*3
- set/a f=%time:~6,1%*3
- set/a g=%time:~7,1%*3
- echo.
- echo !h1:~%b%,3! !h1:~%c%,3! !h1:~%d%,3! !h1:~%e%,3! !h1:~%f%,3! !h1:~%g%,3!
- echo !h2:~%b%,3! !h2:~%c%,3! ■ !h2:~%d%,3! !h2:~%e%,3! ■ !h2:~%f%,3! !h2:~%g%,3!
- echo !h3:~%b%,3! !h3:~%c%,3! !h3:~%d%,3! !h3:~%e%,3! !h3:~%f%,3! !h3:~%g%,3!
- echo !h4:~%b%,3! !h4:~%c%,3! ■ !h4:~%d%,3! !h4:~%e%,3! ■ !h4:~%f%,3! !h4:~%g%,3!
- echo !h5:~%b%,3! !h5:~%c%,3! !h5:~%d%,3! !h5:~%e%,3! !h5:~%f%,3! !h5:~%g%,3!
- :t
- set/a gg=%time:~7,1%*3
- if %g%==%gg% (goto t) else goto tt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |