- @echo off&setlocal enabledelayedexpansion
- set /a cols=40,lines=20,act=0
-
- set cr=^
-
-
- rem 定义换行符号到变量,(注意要空两行)
-
- for /l %%a in (1,1,%cols%) do (set spc=+!spc!)
- for /l %%a in (1,1,%lines%) do (
- set l%%a=%spc%
-
- set ech=!ech!^^!L%%a^^!^^!cr^^!
- rem 保存显示行变量名
-
- set rrr=!rrr! ^^!RR%%a^^!
- rem 保存随机数据变量名
-
- for /l %%b in (1,1,%cols%) do (
- set /a ra=!random!%%%lines%+1,rb=!random!%%2
- for %%c in (!ra!) do (
- if !rb! equ 0 (
- set RR%%c=!RR%%c! %%a_%%b
- ) else (
- set RR%%c=%%a_%%b !RR%%c!
- )
- )
- )
- )
- rem 第一次打乱
-
-
- for %%a in (%rrr%) do (
- set /a ra=!random!%%%lines%+1,rb=!random!%%2
- for %%c in (!ra!) do (
- if !rb! equ 0 (
- set RC%%c=!RC%%c! %%a
- ) else (
- set RC%%c=%%a !RC%%c!
- )
- )
- )
- rem 第二次打乱
-
-
- rem 将打乱的空间数据按顺序取用
- for %%a in (%rrr:RR=RC%) do (
- for /f "tokens=1,2 delims=_" %%b in ("%%a") do (
- set/a x=%%c-1
- for %%d in (!x!) do (
- set l%%b=!l%%b:~0,%%d! !l%%b:~%%c!
- )
- )
- cls&echo;%ech%
- rem %ech% =>!L1!!cr!!L2!!cr!... =>显示数据
- )
-
- pause
- ::代码特点,在初始化时要较多时间,但是为刷屏争取到了时间
复制代码
|