最近在网上看到一个数字电子表的批处理,头看晕了,源代码如下:- @echo off&SetLocal EnableDelayedExpansion&Mode Con Cols=54 Lines=6&Color 0a
- for %%a in (4 1 2 1 2 1 4 2 1 2 1 2 1 2 1 2 4 2 5 2 6 2 4 2 5 1 2
- 1 4 2 1 2 5 2 3 2 8 2 4 1 7 2 1 2 1 2 1 2 5 1 5 1 8 1 4 2 4) do (
- set/a "cc=~cc"
- for /l %%i in (1,1,%%a) do if "!cc!"=="0" (set "dgts=!dgts! ") else set "dgts=!dgts!■"
- )
- for /l %%z in () do (
- if "!time:~7,1!" neq "!sec!" (
- set "sec=!time:~7,1!"
- set "oc="
- for /l %%h in (0,1,4) do (
- for %%d in (0 sp 1 sp : sp 3 sp 4 sp : sp 6 sp 7) do (
- if "%%d"==":" (
- set/a tt=%%h*5
- if "!tt:~-1!"=="0" (set "oc=!oc! ") else set "oc=!oc!●"
- ) else (
- if "%%d"=="sp" (set "oc=!oc! ") else (
- set "timeP=!time: =0!"
- set/a s=!timeP:~%%d,1!*15+%%h*3
- for %%o in (!s!) do set "oc=!oc!!dgts:~%%o,3!"
- )
- )
- )
- )
- cls
- set/p=!oc!<nul
- )
- )
复制代码 显示这样的:
恳求大虾们解释下其中的原理,实现这样的效果关键在哪里?还有第一个for里面的那一串数字有什么用? |