China DOS Union

-- Unite DOS · Advance DOS · Grow DOS --

Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum
DOS stands for freedom, openness and progress. Let us work hard, learn from the openness and GNU spirit of FreeDOS and Linux, and together build and grow a free GNU GPL world!

中国DOS联盟论坛
The time now is 2026-06-30 12:29
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » Challenge the digital rain again (updated) View 3,433 Replies 34
Floor 16 Posted 2008-05-25 21:18 ·  中国 北京 海淀区 联通
银牌会员
★★★
Credits 1,287
Posts 634
Joined 2007-05-02 15:06
19-year member
UID 87277
Gender Male
From cmd.exe
Status Offline
It's better to use tabs for it. Calculating spaces is too tiring..
Floor 17 Posted 2008-05-25 21:57 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
Credits 2,404
Posts 946
Joined 2005-09-08 13:44
20-year member
UID 42345
Status Offline
Each line is fixed to output 80 characters, then it should be aligned, right?
简单!简单!再简单!
Floor 18 Posted 2008-05-25 23:14 ·  中国 重庆 渝中区 电信
初级用户
★★
Credits 198
Posts 89
Joined 2007-09-06 23:22
18-year member
UID 96746
Gender Male
From 重庆
Status Offline
I also come up with a simple one:
@echo off&color 02
:loop
for /l %%i in (1,1,26) do (
call set/a var=%%random%%%%%%2&call set/p= %%var%%<nul
)
echo.
if %random% lss 1000 echo 数 码 雨
for /l %%i in (1,1,200) do ver>nul
goto loop


[ Last edited by WANKOILZ on 2008-5-27 at 03:35 PM ]
Floor 19 Posted 2008-11-16 06:37 ·  中国 江苏 南京 电信
初级用户
Credits 50
Posts 27
Joined 2008-11-08 15:33
17-year member
UID 130380
Gender Male
From 南京
Status Offline
WANKOILZ
Efficient and concise, great!
Floor 20 Posted 2008-11-16 16:53 ·  中国 四川 成都 电信
初级用户
★★
Credits 118
Posts 66
Joined 2006-08-18 16:04
19-year member
UID 60797
Gender Male
Status Offline
In learning, the thread starter is amazing
Floor 21 Posted 2009-02-09 10:44 ·  中国 广东 中山 联通
初级用户
Credits 37
Posts 32
Joined 2008-08-21 15:50
17-year member
UID 123784
Gender Male
Status Offline
How to achieve scrolling down?
Floor 22 Posted 2009-02-09 15:16 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
@echo off&color 02
set n=1
:loop
set var=
for /l %%i in (1,1,26) do (call set/a r=%%random%%%%%%2&call set "var=%%var%% %%r%%")
set "len%n%=%var%"
set/a n=(n-1+24)%%24,m=n
for /l %%b in (1,1,24) do (call :sub)
cls
echo.%var%
for /l %%i in (1,1,300) do ver>nul
goto loop
:sub
set/a m=(m+1)%%24
call set var=%%var%% %%len%m%%%

[ Last edited by netbenton on 2009-2-9 at 18:43 ]
精简
=> 个人网志
Floor 23 Posted 2009-02-09 21:30 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
Part of the code borrows the method from floor 18 and is modified to make it fall down.
The real "rain" is coming! ^_^

@echo off&color 02
set len= 数 码 雨 来 咯 !
:loop
set var=
for /l %%i in (1,1,26) do (call set/a r=%%random%%%%%%2&call set "var=%%var%% %%r%%")
set len=%var% %len:~0,1838%
cls
echo.%len%
for /l %%i in (1,1,300) do ver>nul
goto loop
精简
=> 个人网志
Floor 24 Posted 2009-02-09 21:38 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
@echo off&color 02
set len= 数 码 雨 来 咯 ! 16H By Benton
set str=fedcba9876543210
:loop
set var=
for /l %%i in (1,1,26) do (call set/a r=%%random%%%%%%16&call call set "var=%%var%% %%%%str:~%%r%%,1%%%%")
set len=%var% %len:~0,1838%
cls
echo.%len%
for /l %%i in (1,1,300) do ver>nul
goto loop
精简
=> 个人网志
Floor 25 Posted 2009-02-16 00:25 ·  中国 广东 广州 白云区 电信
中级用户
★★
Credits 259
Posts 112
Joined 2006-09-18 04:55
19-year member
UID 62928
Gender Male
Status Offline
Haha, it's really quite fun!
Floor 26 Posted 2009-02-16 14:32 ·  中国 湖北 武汉 联通
初级用户
Credits 108
Posts 49
Joined 2008-02-26 18:54
18-year member
UID 111491
Gender Male
Status Offline
Floor 27 Posted 2009-04-17 02:12 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
@echo off&color 02
if defined len goto :sub
SETLOCAL ENABLEDELAYEDEXPANSION
set len= 数 码 雨 来 咯 ! By Benton
start /b %~n0.bat
title 数码雨 By Benton 按任意键退出
set str= 0 1 2 3 4 5 6 7 89ABCDEFG
:loop
set var=
for /l %%i in (1,1,26) do (set/a r=!random!%%32&call set "var=!var! %%str:~!r!,1%%")
set len=!var! !len:~0,1838!
cls
echo !len!
for /l %%i in (1,1,300) do ver>nul
goto loop
:sub
pause>nul
TASKKILL /FI "WINDOWTITLE ne 数码雨 By Benton" >nul
精简
=> 个人网志
Floor 28 Posted 2009-04-17 11:47 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
::Hacker digital rain bidirectional movement, super realistic
::Also supports key exit

@echo off&color 0a
if defined lins goto :sub
set "lins= 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22"
setlocal enabledelayedexpansion
start /b %~n0.bat
title 数码雨 By Benton 按任意键退出
set str=fedcbag h i j k l m n o p q r s t u v w x y z9876543210ABCDEFG H I J K L M N O P Q R S T U V W X Y Z
for %%i in (%lins%) do (
for /l %%j in (1,1,8) do (
set "m%%i=!m%%i! "
set "n%%i=!n%%i! "
)
)
set n=0
set m=1
::Preprocessing ends


:::::::::::::::Loop body:::::::::::::::
:loop
set var= %%str:~!random:~0,2!,1%%
for /l %%i in (1,1,2) do (
call set "var=!var! %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%%"
)
set/a n=^(n+22^)%%23,m=^(m+22^)%%23
set m%m%=!var!
set n%n%=!var!
set lins=!lins:~-3!!lins:~0,-3!

set tem=!n0!
for %%a in (a b) do (
for /l %%i in (22,-1,0) do (
set tem1=!n%%i!
set n%%i=!tem!
set tem=!tem1!))

set ll=0
for %%i in (%lins%) do (
set "l!ll!=!m%%i:~0,3!!n%%i:~0,3!!m%%i:~3,3!!n%%i:~3,3!!m%%i:~6,3!!n%%i:~6,3!!m%%i:~9,3!!n%%i:~9,3!!m%%i:~12,3!!n%%i:~12,3!!m%%i:~15,3!!n%%i:~15,3!!m%%i:~18,3!!n%%i:~18,3!!m%%i:~21,3!!n%%i:~21,3!!m%%i:~24,3!!n%%i:~24,3!!m%%i:~27,3!!n%%i:~27,3!!m%%i:~30,3!!n%%i:~30,3!!m%%i:~33,3!!n%%i:~33,3!!m%%i:~36,3!!n%%i:~36,3! "
set/a ll+=1
)
set len=!l0!!l1!!l2!!l3!!l4!!l5!!l6!!l7!!l8!!l9!!l10!!l11!!l12!!l13!!l14!!l15!!l16!!l17!!l18!!l19!!l20!!l21!!l22!!l23!
cls
echo !len:~0,1838!
for /l %%i in (1,1,1000) do echo.>nul
goto loop
::::::::::::::::::::::::::::::::::::

::External control sub - process
:sub
pause>nul
TASKKILL /FI "WINDOWTITLE ne 数码雨"
精简
=> 个人网志
Floor 29 Posted 2009-04-17 14:17 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
Credits 1,916
Posts 752
Joined 2008-12-28 04:30
17-year member
UID 135147
Gender Male
From 广西
Status Offline
::Bidirectional Movement + Left and Right Text Scrolling

@echo off&color 0a
if defined lins goto :sub
set "lins= 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23"
setlocal enabledelayedexpansion
start /b %~n0.bat
title 数码雨 By Benton 按任意键退出
set str=fedcbag h i j k l m n o p q r s t u v w x y z9876543210ABCDEFG H I J K L M N O P Q R S T U V W X Y Z
for %%i in (%lins%) do (
for /l %%j in (1,1,8) do (
set "m%%i=!m%%i! "
set "n%%i=!n%%i! "
)
)
set n=2
set m=0
set k=0
set "in0=。。。。——《《欢迎来到黑客帝国》》——。。。。。"
set "im0=看到美女了吗?看到了,说明你已是黑客帝国的了。。。"

::Preprocessing ends


:::::::::::::::Loop body:::::::::::::::
:loop
set var= %%str:~!random:~0,2!,1%%
for /l %%i in (1,1,2) do (
call set "var=!var! %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%% %%str:~!random:~0,2!,1%%"
)
set/a n=^(n+23^)%%24,m=^(m+23^)%%24
set m%m%=!var!
set n%n%=!var!
set lins=!lins:~-3!!lins:~0,-3!

set tem=!n0!
for %%a in (a b) do (
for /l %%i in (23,-1,0) do (
set tem1=!n%%i!
set n%%i=!tem!
set tem=!tem1!))

set ll=0
for %%i in (%lins%) do (
set "l!ll!=!m%%i:~0,3!!n%%i:~0,3!!m%%i:~3,3!!n%%i:~3,3!!m%%i:~6,3!!n%%i:~6,3!!m%%i:~9,3!!n%%i:~9,3!!m%%i:~12,3!!n%%i:~12,3!!m%%i:~15,3!!n%%i:~15,3!!m%%i:~18,3!!n%%i:~18,3!!m%%i:~21,3!!n%%i:~21,3!!m%%i:~24,3!!n%%i:~24,3!!m%%i:~27,3!!n%%i:~27,3!!m%%i:~30,3!!n%%i:~30,3!!m%%i:~33,3!!n%%i:~33,3!!m%%i:~36,3!!n%%i:~36,3! "
set/a ll+=1
)

for %%i in (0 4 8 12 16 20) do (if %m%==%%i set/a k=^(k+25^)%%26)

set in=!in0:~%k%!!in0:~0,%k%!
set im=!im0:~-%k%!!im0:~0,-%k%!
set l10=!l10:~0,25!!in:~0,15!!l10:~55!
set l12=!l12:~0,25!!im:~0,15!!l12:~55!

set len=!l0!!l1!!l2!!l3!!l4!!l5!!l6!!l7!!l8!!l9!!l10!!l11!!l12!!l13!!l14!!l15!!l16!!l17!!l18!!l19!!l20!!l21!!l22!!l23!
cls
echo !len:~0,1888!
for /l %%i in (1,1,200) do echo.>nul
goto loop
::::::::::::::::::::::::::::::::::::

::External control subroutine
:sub
pause>nul
TASKKILL /FI "IMAGENAME EQ cmd.exe" /FI "WINDOWTITLE EQ 数码雨*">nul


[ Last edited by netbenton on 2009-4-17 at 22:32 ]
精简
=> 个人网志
Floor 30 Posted 2009-04-18 00:58 ·  中国 河南 郑州 联通
初级用户
Credits 29
Posts 24
Joined 2009-04-09 02:10
17-year member
UID 142464
Gender Male
From 河南
Status Offline
Newcomer passing by, learned it
Forum Jump: