中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-30 12:35
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 再次挑战数码雨(已更新) 查看 3,434 回复 34
16 发表于 2008-05-25 21:18 ·  中国 北京 海淀区 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
对其用Tab好点
算空格太累..
17 发表于 2008-05-25 21:57 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
每行固定输出80字符 就对齐了吧
简单!简单!再简单!
18 发表于 2008-05-25 23:14 ·  中国 重庆 渝中区 电信
初级用户
★★
积分 198
发帖 89
注册 2007-09-06 23:22
18年会员
UID 96746
性别 男
来自 重庆
状态 离线
我也来个简单的:
@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 ]
19 发表于 2008-11-16 06:37 ·  中国 江苏 南京 电信
初级用户
积分 50
发帖 27
注册 2008-11-08 15:33
17年会员
UID 130380
性别 男
来自 南京
状态 离线
WANKOILZ
高效简洁,棒极了!
20 发表于 2008-11-16 16:53 ·  中国 四川 成都 电信
初级用户
★★
积分 118
发帖 66
注册 2006-08-18 16:04
19年会员
UID 60797
性别 男
状态 离线
学习中,楼主厉害
21 发表于 2009-02-09 10:44 ·  中国 广东 中山 联通
初级用户
积分 37
发帖 32
注册 2008-08-21 15:50
17年会员
UID 123784
性别 男
状态 离线
怎么实现向下滚动的呢?
22 往下掉的(2进制) 发表于 2009-02-09 15:16 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@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 ]
精简
=> 个人网志
23 精简一下 发表于 2009-02-09 21:30 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
部分代码借18楼的办法,改动一下成往下掉的。
真正的“雨”下来咯!^_^

@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
精简
=> 个人网志
24 下16进制的“雨” 发表于 2009-02-09 21:38 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@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
精简
=> 个人网志
25 发表于 2009-02-16 00:25 ·  中国 广东 广州 白云区 电信
中级用户
★★
积分 259
发帖 112
注册 2006-09-18 04:55
19年会员
UID 62928
性别 男
状态 离线
哈哈,还真挺好玩的呢!
26 发表于 2009-02-16 14:32 ·  中国 湖北 武汉 联通
初级用户
积分 108
发帖 49
注册 2008-02-26 18:54
18年会员
UID 111491
性别 男
状态 离线
不错的bat
27 发表于 2009-04-17 02:12 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
@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
精简
=> 个人网志
28 发表于 2009-04-17 11:47 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
::黑客数码雨双向移动,超逼真
::还支持按键退出

@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
::预处理结束


:::::::::::::::循环体:::::::::::::::
: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
::::::::::::::::::::::::::::::::::::

::外部控制子过程
:sub
pause>nul
TASKKILL /FI "WINDOWTITLE ne 数码雨"
精简
=> 个人网志
29 发表于 2009-04-17 14:17 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
::双向移动+左右文字滚动

@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=看到美女了吗?看到了,说明你已是黑客帝国的了。。。"

::预处理结束


:::::::::::::::循环体:::::::::::::::
: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
::::::::::::::::::::::::::::::::::::

::外部控制子过程
:sub
pause>nul
TASKKILL /FI "IMAGENAME EQ cmd.exe" /FI "WINDOWTITLE EQ 数码雨*">nul


[ Last edited by netbenton on 2009-4-17 at 22:32 ]
精简
=> 个人网志
30 发表于 2009-04-18 00:58 ·  中国 河南 郑州 联通
初级用户
积分 29
发帖 24
注册 2009-04-09 02:10
17年会员
UID 142464
性别 男
来自 河南
状态 离线
新人路过,学习了
论坛跳转: