Board logo

标题: [游戏娱乐] 退格符在CMD特效中的简单应用 [打印本页]

作者: wc726842270    时间: 2011-2-26 12:32     标题: 退格符在CMD特效中的简单应用

本文思路来自于
  1. bat-wc726842270(726842270) 9:27:53
  2. 不知道这样可以么?
  3. @echo off
  4. set var=123
  5. set a=%var% 
  6. echo %a%
  7. pause>nul
  8. bat-defanive(524565481) 9:30:09
  9. 这样子可以显示出来,但是不能输出到文件
复制代码
多谢BATMAN和DEFANIVE的指点
退格符毕竟是EDIT下打印出来的,并不是键盘上的。正常来说它是不能输出到文本中去的,在这里之所以可以是因为EDIT将其转换成2进制的形式了,所以在文本中也可以显示出来。而在CMD中又将其还原,所以退格符用在CMD的特效上是比较好的作法。
例如
  1. @echo off
  2. set var=123456789
  3. set a=%var%4
  4. echo %a%
  5. pause
复制代码
  1. @echo off
  2. set var=123456789
  3. set a=%var%4
  4. echo %a%
  5. pause
复制代码
  1. @echo off
  2. set var=123456789
  3. set a=%var%4
  4. echo %a%
  5. pause
复制代码
看见效果了么?第一个代码中的8换为了4,而第二个中的7换成4,而第三个中的6被换成了4。那么VAR换成_________,而4换成其它的呢(想要好点的,就设计一个图形,并用变量组表示出来)
例如
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. set var=_____________________
  4. set   b=
  5. :1
  6. set /a n+=1
  7. if %n% gtr 21 goto :2
  8. set c=!b:~,%n%!
  9. set a=%var%%c%@
  10. echo %a%
  11. goto :1
  12. :2
  13. pause
复制代码
运行一下看看,如果想个办法让其自始至终一直显示一行,在加个延时是不是有个动态的感觉呢?其实很简单,看一下下面的代码吧.运行一下就知道了
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. set var=_____________________
  4. set   b=
  5. :1
  6. set /a n+=1
  7. if %n% gtr 21 goto :2
  8. set c=!b:~,%n%!
  9. set a=%var%%c%@
  10. ping /n 1 127.1 >nul
  11. cls
  12. echo %a%
  13. goto :1
  14. :2
  15. pause
复制代码
是吧,动画的效果已经出来了.难道这就是尽头了么?当然不是了.呵呵,还可以加点色彩啊
  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. set var=_____________________
  4. set   b=
  5. set col=123456789abcde
  6. :1
  7. set /a d=%random%%%14+1
  8. color 0!col:~%d%,1!
  9. set /a n+=1
  10. if %n% gtr 21 goto :2
  11. set c=!b:~,%n%!
  12. set a=%var%%c%@
  13. ping /n 1 127.1 >nul
  14. cls
  15. echo %a%
  16. goto :1
  17. :2
  18. 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://bbs.bathome.net/) Powered by Discuz! 7.2