标题: 批处理实现 “霓虹灯” 效果 [打印本页]
作者: youxi01 时间: 2008-1-2 11:13 标题: 批处理实现 “霓虹灯” 效果
该效果本人也没去尝试过(因为没接触过批处理中 彩色字符 的实现代码),至于代码编写的可行性我也不知道...
至于所谓的 霓虹灯 效果可以这样解释(比较粗陋的霓虹灯效果),举例说明:
假设有这样的一段字符串(黑底红字):批处理之家bbs.bathome.net
然后第一个字符 批 变为白色,其它的仍为:红色;
再接下来:第二个字符 处 为白色,其它的仍为:红色;
依次类推,形成类 霓虹灯 的效果.
作者: 随风 时间: 2008-5-11 21:32
参照cn-dos此帖
http://www.cn-dos.net/forum/viewthread.php?tid=39727###
利用临时文件和findstr /a 参数。
若是想显示字母的话,则所有显示字母都必须是合法的文件名。- @echo off&echo.&echo.&color 0c
- ::code 随风 @bbs.bathome.net 2008-0511
- set /p= <nul>●
- for /l %%a in (1 1 30) do (
- call set str=●%%str%%
- call set t=%%t%%
- )
- set /p= %str%<nul
- set /p=%t%<nul
- for %%a in (a b c d e f) do (
- setlocal
- call :loop %%a
- endlocal
- )
- pause>nul&exit
- :loop
- set wjm=%str:~0,1%
- if "%str:~1%"=="" (set bu= ) else set bu=●
- findstr /a:%1 .* ●*
- set /p=%bu%<nul
- for /l %%a in (1 1 100) do ver>nul
- set str=%str:~1%
- if defined str goto loop
- set /p=%t%<nul
- goto :eof
复制代码
[ 本帖最后由 随风 于 2008-5-11 21:34 编辑 ]
作者: 随风 时间: 2008-5-11 22:42
再来个,最烂的霓虹灯。- @echo off&echo.&echo.&color 0c
- ::code 随风 @bbs.bathome.net 2008-0511
- set /p= <nul>●
- for /l %%a in (1 1 30) do (
- call set str=●%%str%%
- call set t=%%t%%
- )
- set /p= %str%<nul
- set /p=%t%<nul
- set ys=abcdefa
- setlocal EnableDelayedExpansion
- for %%a in (a b c d e f) do (
- set /a m+=1&call set b2=%%ys:~!m!,1%%
- call :loop %%a !b2!
- )
- pause>nul&exit
- :loop
- set /a n+=1,h+=1
- if "%str:~1%"=="" (set bu= ) else set bu=●
- findstr /a:%1 .* ●*
- set /p=%bu%<nul
- if %n% geq 5 call :list %1 %2 %2&set n=2
- title %2
- set str=%str:~1%
- if %h% lss 30 goto loop
- set /p=%t%<nul
- set /a h=0,n=0
- goto :eof
- :list
- if "%2"=="" goto :eof
- set /p=<nul
- findstr /a:%2 .* ●*
- set /p=%bu%<nul
- findstr /a:%1 .* ●*
- set /p=%bu%<nul
- findstr /a:%1 .* ●*
- set /p=%bu%<nul
- findstr /a:%1 .* ●*
- set /p=%bu%<nul
- findstr /a:%1 .* ●*
- set /p=%bu%<nul
- shift
- goto list
复制代码
作者: 随风 时间: 2008-5-12 14:36
再来一个- @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
复制代码
作者: youxi01 时间: 2008-5-12 18:53
还有点小问题,测试便知
作者: 随风 时间: 2008-5-12 19:16
哦?
4 楼的吗?我测试没问题啊?
作者: youxi01 时间: 2008-5-12 21:32
呵呵,没事了,似乎是原来的感觉错误,呵呵,不好意思
作者: gavincwb 时间: 2008-5-21 04:33
不是很清楚
只有慢慢来学习了
作者: aa779 时间: 2008-6-15 10:46
开眼界了,原来可以这样弄,如果能想霓虹灯广告那样,那就好看了
作者: batman 时间: 2008-6-21 15:03
我也来一个,以前写的:- @echo off&mode con cols=41 lines=5
- title 权当打发无聊的小动画
- set a=★&set b=☆&set c=0123456789abcdef
- echo.&echo.
- :begin
- set /a n=%random%%%20+1,m=40-2*n,x=%random%%%16
- call,color 1%%c:~%x%,1%%
- for /l %%i in (1,1,20) do set /p=%b%<nul&ping /n 127.1>nul
- for /l %%i in (1,1,100) do set /p=<nul
- for /l %%i in (1,1,%m%) do set /p= <nul&ping /n 127.1>nul
- for /l %%i in (1,1,%n%) do set /p=%a%<nul&ping /n 127.1>nul
- for /l %%i in (1,1,100) do set /p=<nul
- goto begin
复制代码
作者: batman 时间: 2008-6-21 15:08
再来个更小型的:- @echo off&mode con cols=30 lines=5
- echo.&echo.
- :begin
- set str=bbs.bathome.net&set b=123456789abcdef
- set /a a=%random%%%14
- call,color 1%%b:~%a%,1%%
- call,set var=%%str:~%a%,1%%
- call,set str=%%str:%var%= %%
- set /p= %str%<nul
- for /l %%i in (1,1,1000) do set /p=<nul
- goto begin
复制代码
作者: 杨风 时间: 2008-6-21 15:17
哇哦~~~TI is beautiful ~~~~~~
作者: yyyxlxq 时间: 2008-6-23 17:18 标题: 倒地!
被你这个东东搞挂机了
作者: w156445045 时间: 2008-6-26 13:07
好东西啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: cfish09 时间: 2008-6-27 22:16
不错 哦xxi kl
作者: yrg27 时间: 2008-7-27 09:20
看不懂。。。。慢慢来。
作者: Clark2505 时间: 2008-8-5 23:37
看不懂。。。。
哪位大大给讲解一下??
作者: Clark2505 时间: 2008-8-6 10:26
原帖由 batman 于 2008-6-21 03:03 PM 发表
我也来一个,以前写的:@echo off&mode con cols=41 lines=5
title 权当打发无聊的小动画
set a=★&set b=☆&set c=0123456789abcdef
echo.&echo.
:begin
set /a n=%random%%%20+1,m=40-2*n,x=%random%%%16
ca ...
复制代码
为什么一定要用 call?
call, 是什么用法??
哪里有讲解 call 用法的??
作者: bmwyy2008 时间: 2008-8-8 09:50 标题: 呵呵
10楼有的地方还是看不懂,能给解释一下吗?
作者: kennywang 时间: 2008-8-9 16:25
感觉挺好玩的。就是现在我不会啊。
作者: 都市浪子666 时间: 2008-8-9 17:17
厉害,真漂亮。郁闷的是,偶看不懂那些代码,
作者: xouou_53320 时间: 2008-8-14 00:29
来学习学习 很好看的灯
作者: chxrsq1987 时间: 2008-8-16 15:08
哇,太牛了。~~~~~~
作者: westsky 时间: 2008-8-16 21:41
用call 命令调用 color 颜色命令
你在这个批处理的 call 命令前加上:: 2个冒号
保存后你一看就明白了
call 还可以调用另一个批处理命令,格式:
call a.bat 表示 调用 a这个批处理
这是一个菜鸟的解释,有不对的地方 别拿鸡蛋扔我
作者: yslyxqysl 时间: 2008-8-29 21:31
那如何在同一行内显示不同颜色的字符,并不产生临时文件?
作者: jestso 时间: 2008-8-30 23:50
好好好好好好好好好好好好好好好好
作者: jytn 时间: 2008-10-26 07:54
今天算开眼界了。。。
作者: ljl 时间: 2008-12-1 12:33
都是高手啊就我一个人不会了
作者: ahongguo 时间: 2009-1-2 18:26
一开始看 那是一头雾水啊
但是看了 11楼 那哥们做的 似乎懂得了
哈哈
作者: qqqtantan 时间: 2009-1-6 21:11 标题: 彩
不错哦 学习了
作者: cbw1982 时间: 2009-1-31 23:16
恩,很不错的东东,开眼了
作者: a5417871 时间: 2009-3-31 05:17
我什么时候能把批处理玩到这种境界呢。。。阿门
作者: hdw 时间: 2009-8-5 15:27 标题: 解释一下
::一个“ ”为一个退格,使不同颜色字符换色时从当前行首开始重新载入(消除原来存在的字符)
::一个“”为一个退格,使不同颜色字符换色时从当前行首开始重新载入(不消除原来存在的字符)
作者: hdw 时间: 2009-8-5 15:28
以上解释不知道对不对。这是通过一系列试验得到的
作者: hdw 时间: 2009-8-5 15:30
findstr /a:4 .* "●*"是在当前光标下显示一个指定颜色的字符(以文件形式存在,可以被指定颜色)
作者: hdw 时间: 2009-8-5 17:26 标题: 解释 修改 一下
- @echo off&mode con cols=41 lines=5
- title 动画
- set a=★&set b=☆&set c=0123456789abcdef
- echo.
- echo edit by hdw 2009-8-5
- echo.
- :begin
- set /a n=%random%%%20+1,m=40-2*n,x=%random%%%16
- call,color 0%%c:~%x%,1%%
- for /l %%i in (1,1,20) do set /p=%b%<nul&ping>nul
- for /l %%i in (1,1,20) do set /p=<nul
- for /l %%i in (1,1,8) do set /p= <nul&ping>nul
- for /l %%i in (1,1,12) do set /p=%a%<nul&ping>nul
- for /l %%i in (1,1,20) do set /p=<nul
- goto begin
- ::加“&ping>null”起到了延时的作用
- ::★占两个退格符位或空格位
- ::一个退格符加一个空格符可以把光标前一个字符删除
复制代码
作者: joker 时间: 2009-10-6 11:27
效果很好啊
各位大侠辛苦了
作者: lianjl 时间: 2010-5-16 17:15
It is beautiful!
作者: kacos999 时间: 2010-5-17 02:19 标题: 真厲害!!
从没想过能这样做呢
真大开了眼界!!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |