标题: [游戏娱乐] 退格符在CMD特效中的简单应用 [打印本页]
作者: wc726842270 时间: 2011-2-26 12:32 标题: 退格符在CMD特效中的简单应用
本文思路来自于- bat-wc726842270(726842270) 9:27:53
- 不知道这样可以么?
- @echo off
- set var=123
- set a=%var%
- echo %a%
- pause>nul
- bat-defanive(524565481) 9:30:09
- 这样子可以显示出来,但是不能输出到文件
复制代码
多谢BATMAN和DEFANIVE的指点
退格符毕竟是EDIT下打印出来的,并不是键盘上的。正常来说它是不能输出到文本中去的,在这里之所以可以是因为EDIT将其转换成2进制的形式了,所以在文本中也可以显示出来。而在CMD中又将其还原,所以退格符用在CMD的特效上是比较好的作法。
例如- @echo off
- set var=123456789
- set a=%var%4
- echo %a%
- pause
复制代码
- @echo off
- set var=123456789
- set a=%var%4
- echo %a%
- pause
复制代码
- @echo off
- set var=123456789
- set a=%var%4
- echo %a%
- pause
复制代码
看见效果了么?第一个代码中的8换为了4,而第二个中的7换成4,而第三个中的6被换成了4。那么VAR换成_________,而4换成其它的呢(想要好点的,就设计一个图形,并用变量组表示出来)
例如- @echo off&setlocal enabledelayedexpansion
- set n=0
- set var=_____________________
- set b=
- :1
- set /a n+=1
- if %n% gtr 21 goto :2
- set c=!b:~,%n%!
- set a=%var%%c%@
- echo %a%
- goto :1
- :2
- pause
复制代码
运行一下看看,如果想个办法让其自始至终一直显示一行,在加个延时是不是有个动态的感觉呢?其实很简单,看一下下面的代码吧.运行一下就知道了- @echo off&setlocal enabledelayedexpansion
- set n=0
- set var=_____________________
- set b=
- :1
- set /a n+=1
- if %n% gtr 21 goto :2
- set c=!b:~,%n%!
- set a=%var%%c%@
- ping /n 1 127.1 >nul
- cls
- echo %a%
- goto :1
- :2
- pause
复制代码
是吧,动画的效果已经出来了.难道这就是尽头了么?当然不是了.呵呵,还可以加点色彩啊- @echo off&setlocal enabledelayedexpansion
- set n=0
- set var=_____________________
- set b=
- set col=123456789abcde
- :1
- set /a d=%random%%%14+1
- color 0!col:~%d%,1!
- set /a n+=1
- if %n% gtr 21 goto :2
- set c=!b:~,%n%!
- set a=%var%%c%@
- ping /n 1 127.1 >nul
- cls
- echo %a%
- goto :1
- :2
- pause
复制代码
感觉怎么样.是不是很容易呢!当然它和findstr /a结合时更加强大。它在CMD上的特效并不止这些,它的应用是取绝于你的所见所识。想用好的话就努力的学习吧(其实知识或者说你的认知都是这样),好了现在的思路就是这些。以后就要看你们的了。(以上代码没有优化,不过可以很清楚的看清步骤)
PS:这仅仅作为新手的我的一些看法,再此发出是希望新手学习,老手给提些议建。另外以上属于个人的想法,如有不对,请指出,多谢了
和FINDSTR /A的结合请看这里吧
http://www.bathome.net/thread-8735-1-3.html
我也是在这儿,第一次学习的退格符
[ 本帖最后由 wc726842270 于 2011-2-26 12:37 编辑 ]
作者: cjiabing 时间: 2011-2-26 18:56
LZ阐述下原理或许更好,说实在的,我懂得用,但我不明白它为何能够这样?
作者: wc726842270 时间: 2011-2-28 19:14 标题: 回复 2楼 的帖子
个人认为。退格符是一种将光标回读的一种现像,而在光标的所经过(或者上方)的字符也可以进行重新指派,
看下一下面的文章理解一下吧
http://www.bathome.net/thread-7137-1-1.html
[ 本帖最后由 wc726842270 于 2011-2-28 19:18 编辑 ]
作者: hbwazxf 时间: 2011-3-1 17:41
学习了……。。。。感谢楼主……
其实批处理中还可以用ECHO 加CTRL+G来响铃,很早就在用了,可以直接复制CMD中的以CTRL+G,或者使用COPY CON 1。BAT这样来搞……
作者: ejzhang 时间: 2011-4-10 13:57
楼主真高人也!
作者: jay_16 时间: 2011-4-17 23:31
很厉害呀,呵呵,对了,我有些不明白。bat教程为了什么没有写这样的细节?还是被高人无意发现的?
作者: batman 时间: 2011-4-18 08:39
6# jay_16
不是写不出这样的教程,而是没必要写这样的教程,退格只有在批处理动画中才能发挥其强大的功能,而批处理动画显然不是批处理的重点和方向所在。。。
作者: garyng 时间: 2011-8-22 15:33
回复 7# batman
那些个批处理动画教程~
给我这些新手的~
作者: cjiabing 时间: 2011-8-22 15:49
回复 8# garyng
目前没有专门的教程。批处理动画也是利用了批处理的基础知识,只是在思路和技巧上有所侧重而已。专研论坛的游戏,定有收获。
作者: garyng 时间: 2011-8-22 16:53
回复 9# cjiabing
好的~小菜鸟听您的话!!
作者: 853122 时间: 2014-2-3 13:17
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |