中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-19 21:53
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 动画特效:画圆、弹球、进度条、起落等 查看 7,790 回复 30
16 发表于 2009-03-15 12:25 ·  中国 云南 昆明 呈贡区 电信
新手上路
积分 8
发帖 7
注册 2009-02-13 15:16
17年会员
UID 138744
性别 男
状态 离线
先学习。。哪天会了,再回来。。。
17 发表于 2009-03-16 06:24 ·  中国 广东 中山 电信
新手上路
积分 12
发帖 15
注册 2009-02-17 13:15
17年会员
UID 139068
性别 男
状态 离线
我把空格换成了#,set h=!h:####=#####!这句话就是每次加一个#吧,为什么它变化的时候每循环两次后,就加了两个##呢?谁能解释下。

@echo off
setlocal enabledelayedexpansion
set "kong= "
rem set h= o
set h=#####o
for /l %%a in (1,1,10) do (
ping -n>nul &ping -n>nul
rem set h=!h: = !
set h=!h:####=#####!
echo !h!
)
for /l %%a in (1,1,9) do (
ping -n>nul &ping -n>nul
set h=!h:#####=####!
echo !h!
)
pause

为什么换空格换成*后,得出了结果不正常了,谁再能帮解释下。
@echo off
setlocal enabledelayedexpansion
set "kong= "
rem set h= o
set h=*****o
for /l %%a in (1,1,10) do (
ping -n>nul &ping -n>nul
rem set h=!h: = !
set h=!h:****=*****!
echo !h!
)
for /l %%a in (1,1,9) do (
ping -n>nul &ping -n>nul
set h=!h:*****=****!
echo !h!
)
pause
18 发表于 2009-03-16 07:01 ·  中国 江苏 徐州 电信
新手上路
积分 8
发帖 4
注册 2009-02-27 00:45
17年会员
UID 140067
性别 男
状态 离线
本人技术不高
随便改个
群星乱闪给大家
@echo off
setlocal enabledelayedexpansion
mode con cols=102 lines=25
:loop
for /l %%a in (1,1,100) do (set k= !k!)
for /l %%a in (-10,1,10) do (set h%%a=%k%)
set la=-11
:la
set /a la+=1,lb=la*la,tlb=100-lb
set h%la%=!h%la%:~%tlb%!.
ping -n 1 127.1>nul
cls
for /l %%a in (-10,1,10) do echo,!h%%a!
if %la% lss 10 goto :la
goto loop
19 发表于 2009-03-16 20:40 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
学18楼的,
楼主原来的,球靠近后出现拖尾,并且到行尾后有时越界,
改善一下。

@echo off &setlocal enabledelayedexpansion
title made by hi.baidu.com/523066680
color 17 &mode con cols=60 lines=30
for /l %%a in (1,1,60) do (set space= !space!)
set /a La=14,Lb=30,Ca=29,Cb=57,r=5
:loop
if %La% lss 29 (set /a La+=2,line=La) else (set /a Lb-=2,line=Lb)
if %Lb% leq -1 (set /a La=-1,Lb=30,r=%random%%%3+2)
set/a nnn=ca+r
if %nnn% lss 59 (set /a Ca+=r,col=Ca) else (set /a Cb-=r,col=Cb)
if %Cb% leq 4 (set /a Ca=-1,Cb=59,r=%random%%%3+1)

if %line% lss 15 (
for /l %%a in (1,1,29) do echo,
for /l %%a in (1,1,%line%) do echo,
echo,!space:~0,%col%!●
)
for /l %%a in (1,1,%line%) do echo,
echo,!space:~0,%col%!●
ping -n 1 127.1>nul

goto :loop
精简
=> 个人网志
20 发表于 2009-03-17 01:44 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
嘿嘿 ~ 模仿 随风 的弹球 的时候 繁衍出来的错误效果,netbenton改的不错撒。

另外17楼
set h=!h:####=#####! 如果只有4个 则是加一个
但是当有8个的时候,这句话会把它分开,每4个加一个 也就是加两个了
所以。。。。
21 旋进的曲线哦 发表于 2009-05-01 21:40 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
set /a a=7,b=-6
for /l %%a in (1,1,80) do (set space= !space!)

:loop
if %a% gtr -6 (set /a a-=1,k=a*a) else (set /a b+=1,k=72-b*b)
if %b% equ 6 (set /a a=6,b=-6)
echo, !space:~0,%k%!*
for %%a in (a b) do ping -n 1 127.1>nul
goto :loop
22 发表于 2009-05-06 21:04 ·  中国 河南 开封 电信
新手上路
积分 2
发帖 29
注册 2009-04-01 21:53
17年会员
UID 141828
性别 男
状态 离线
先学习。。哪天会了,再回来。。。
23 发表于 2009-05-06 21:05 ·  中国 河南 开封 电信
新手上路
积分 2
发帖 29
注册 2009-04-01 21:53
17年会员
UID 141828
性别 男
状态 离线
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
先学习。。哪天会了,再回来。。。
24 彩色蜿蜒曲线 发表于 2009-05-16 05:07 ·  中国 广东 揭阳 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线

@echo off
::code by 523066680 / if_exist
setlocal enabledelayedexpansion
for /l %%a in (1,1,80) do (set k= !k!)
set /a a=7,b=-6,color=0
set /p= <nul>OO
:a
set /a color+=1
if %a% gtr -6 (set /a a-=1,x=a*a) else (set /a b+=1,x=72-b*b)
if %b% equ 6 (set /a a=6,b=-6)
for %%a in (a b) do (
set /p a=!k:~0,%x%!<nul
findstr /a:%color%  "OO*"
echo,
)
ping -n 1 127.1>nul
if %color% leq 200 goto :a
pause
25 发表于 2009-06-28 03:26 ·  中国 广东 深圳 电信
新手上路
积分 6
发帖 4
注册 2009-06-26 00:54
16年会员
UID 148149
性别 男
状态 离线
很有意思,都收藏了,呵呵
26 发表于 2009-07-01 14:23 ·  中国 广东 江门 电信
新手上路
积分 4
发帖 4
注册 2008-03-11 02:55
18年会员
UID 112597
性别 男
状态 离线
动画效果很帅!更令人有兴趣学习bat
27 发表于 2010-01-26 21:47 ·  中国 广东 广州 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
快过年了 偷偷来一个: 幽灵出没

@echo off
setlocal enabledelayedexpansion
title 幽灵:我在这里待很久了,你没发现吗?
rem Author: if_exist / 523066680
for /l %%a in (1,1,80) do (set spc= !spc!)
set /a x=1,tmpy=-10
set /a xadd=1,yadd=1,xaddadd=1

:a
cls
for /l %%a in (1,1,%y%) do (echo,)
echo,!spc:~0,%x%!*
set /a i=0,x+=xadd,tmpy+=yadd*(%random%%%2+1),y=tmpy+10,xadd+=xaddadd,yadd+=0
if %xadd:-=% gtr 7 (set /a xaddadd=-xaddadd)
if %tmpy:-=% gtr 10 (set /a yadd=-yadd)
ping -n 1 127.0.0.1>nul
goto :a
28 飞虫 发表于 2010-01-26 22:45 ·  中国 广东 广州 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线

@echo off
setlocal enabledelayedexpansion
title 幽灵:我在批处理之家待很久了,你没发现吗?
rem Author: if_exist / 523066680
for /l %%a in (1,1,79) do (set spc= !spc!)
for /l %%a in (1,1,21) do (set line%%a=%spc%)
set /a x=1,tmpy=-10,xb=x+1,a=1
set /a xadd=1,yadd=1,xaddadd=1

:a
if defined do (!do!)
if defined do (
set line%cuty%=!line%cuty%:~0,%cutx%! !line%cuty%:~%cutxb%!
)
set line%y%=!line%y%:~0,%x%!*!line%y%:~%xb%!
cls
for /l %%a in (1,1,21) do (echo,!line%%a!)
set /a i=0,x+=xadd,tmpy+=yadd,y=tmpy+10,xadd+=xaddadd,xb=x+1
set "do=set /a cutx=%x%,cuty=%y%,cutxb=%xb%"
if %a% leq 10 (set /a a+=1) else (set /a a=1)
if %xadd:-=% gtr 7 (set /a xaddadd=-xaddadd)
if %tmpy:-=% gtr 10 (set /a yadd=-yadd)
ping -n 1 127.0.0.1>nul
goto :a
pause


29 发表于 2010-12-28 15:35 ·  中国 广东 东莞 中移铁通
初级用户
★★
积分 115
发帖 92
注册 2010-12-24 16:57
15年会员
UID 179794
性别 男
状态 离线
好玩呀
30 发表于 2011-01-04 12:11 ·  中国 江苏 徐州 电信
初级用户
积分 43
发帖 29
注册 2008-03-31 15:01
18年会员
UID 114543
性别 男
状态 离线
强悍的帖子,强悍的技术,强悍的LZ……PFPF
论坛跳转: