[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 批处理模拟霓虹灯特效

前向有高手发了个霓虹灯的代码,总看不懂,翻了资料还是不懂,求大侠们给详细解释下这个代码

@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:32 编辑 ]
心绪平和,眼藏静谧。

TOP

回复 2楼 的帖子

版主可否给我解释下霓虹灯的代码呀?~~~

TOP

代码中的 是退格。你打开CMD,输入"echo" 然后再把这个退格键粘贴上去,你会发现什么也没有输出,反倒o被删除了,这是退格的作用。
<nul 测试以下代码:
  1. for /l %%a in (1 1 10) do echo %%a
  2. echo 这是echo输出的方式。&pause&echo.
  3. for /l %%a in (1 1 10) do set/p=%%a <nul
  4. echo 这是set/p=[要输出的内容]^<nul输出的方式。
  5. 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 编辑 ]
心绪平和,眼藏静谧。

TOP

谢谢了~~~~~~~~

TOP

如果只告诉你1+1=2,而不告诉你1+1为何等于2,那么遇到2+2时同样不知道该怎么做
这句在理啊,新手就是要养成独立思考的习惯,这样学东西才快才扎实!
***共同提高***

TOP

返回列表