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

[游戏娱乐] 退格符在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 编辑 ]
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

LZ阐述下原理或许更好,说实在的,我懂得用,但我不明白它为何能够这样?
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 2楼 的帖子

个人认为。退格符是一种将光标回读的一种现像,而在光标的所经过(或者上方)的字符也可以进行重新指派,
看下一下面的文章理解一下吧
http://www.bathome.net/thread-7137-1-1.html

[ 本帖最后由 wc726842270 于 2011-2-28 19:18 编辑 ]
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

学习了……。。。。感谢楼主……
其实批处理中还可以用ECHO 加CTRL+G来响铃,很早就在用了,可以直接复制CMD中的以CTRL+G,或者使用COPY CON 1。BAT这样来搞……

TOP

楼主真高人也!

TOP

很厉害呀,呵呵,对了,我有些不明白。bat教程为了什么没有写这样的细节?还是被高人无意发现的?

TOP

6# jay_16

不是写不出这样的教程,而是没必要写这样的教程,退格只有在批处理动画中才能发挥其强大的功能,而批处理动画显然不是批处理的重点和方向所在。。。
***共同提高***

TOP

回复 7# batman

那些个批处理动画教程~
给我这些新手的~

TOP

回复 8# garyng


    目前没有专门的教程。批处理动画也是利用了批处理的基础知识,只是在思路和技巧上有所侧重而已。专研论坛的游戏,定有收获。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

回复 9# cjiabing


好的~小菜鸟听您的话!!

TOP

TOP

返回列表