标题: [特效代码] 批处理模拟霓虹灯特效 [打印本页]
作者: aaqqi1111 时间: 2008-8-11 15:02 标题: 批处理模拟霓虹灯特效
前向有高手发了个霓虹灯的代码,总看不懂,翻了资料还是不懂,求大侠们给详细解释下这个代码
@echo off&echo.&echo.&color 0c
set _1=●&set "_2=●●"
set /p= <nul>●
copy /y ● ●● >nul
set ys=abdef123456789
::code 随风 @bbs.bathome.net 2008-0511
for /l %%a in (1 1 30) do (
call set str=●%%str%%
call set t=%%t%%
)
set /p= %str%<nul
:loop
set /a n=%random%%%27+3,w=%random%%%2+1,m=n-4+w,h=%random%%%14,h2=(h2+1)%%10
call set y=%%ys:~%h%,1%%
call set w=%%_%w%%%
for /l %%a in (1 1 %n%) do set /p=<nul
findstr /a:%y% . %w%*
for /l %%a in (1 1 %m%) do set /p=●<nul
for /l %%a in (1 1 500) do ver>nul
if %h2% geq 5 (color 0c) else color 0%y%
goto loop
[ 本帖最后由 aaqqi1111 于 2008-8-11 15:16 编辑 ]
作者: pusofalse 时间: 2008-8-11 15:05
请先修改标题,标题会给人歧义。
[ 本帖最后由 pusofalse 于 2008-8-11 15:32 编辑 ]
作者: aaqqi1111 时间: 2008-8-11 15:18 标题: 回复 2楼 的帖子
版主可否给我解释下霓虹灯的代码呀?~~~
作者: pusofalse 时间: 2008-8-11 15:30
代码中的 是退格。你打开CMD,输入"echo" 然后再把这个退格键粘贴上去,你会发现什么也没有输出,反倒o被删除了,这是退格的作用。
<nul 测试以下代码:- for /l %%a in (1 1 10) do echo %%a
- echo 这是echo输出的方式。&pause&echo.
- for /l %%a in (1 1 10) do set/p=%%a <nul
- echo 这是set/p=[要输出的内容]^<nul输出的方式。
- pause
复制代码
与之相反的>nul:
屏蔽正确命令的结果。2>nul为屏蔽错误命令的结果。
for /l %%a in (1 1 500) do ver>nul
这条语句的意思是执行500次ver命令,并把命令结果输出(>)到空设备(nul)
call set y=%%ys:~%h%,1%%
这里的call是延迟的作用。也可以用setlocal enabledelayedexpansion开启延迟。
用call延迟用以上格式,用setlocal 延迟:set y=!ys:~%h%,1!
其他请参照if/?、set/?、for/?、call/?
要讲解的实在是太多了。应该从简到难,到了一定的程度,自然而然地就会明白是什么意思了。
只是告诉你基础的。剩下的那些应该由自己参透,这样才会进步,才值得高兴。^_^
全部告诉你又如何呢,批处理编程同其它编程一样,变化的只是思路。
在这里能学到的只是思维的拓展而已。
如果只告诉你1+1=2,而不告诉你1+1为何等于2,那么遇到2+2时同样不知道该怎么做。^_^
[ 本帖最后由 pusofalse 于 2008-8-11 16:07 编辑 ]
作者: aaqqi1111 时间: 2008-8-11 16:31
谢谢了~~~~~~~~
作者: batman 时间: 2008-8-11 18:03
如果只告诉你1+1=2,而不告诉你1+1为何等于2,那么遇到2+2时同样不知道该怎么做
这句在理啊,新手就是要养成独立思考的习惯,这样学东西才快才扎实!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |