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

[文本处理] 批处理怎样把文本逐字显示,并做整屏向上滚动?

想做这样一个批处理

主要功能是输出一大对文本图案,然后最好能逐行显示出来,

设定一个cmd窗口的大小之后,当显示完一图案之后,能够随着下面的逐行显示,而已经显示出来的内容逐行向上滚动而消失

比如:第一组是如下
  1. ┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓
  2. ┠期待┨┠追求┨┠珍惜┨┠拼搏┨┠激励┨┠进取┨┠奋斗┨┠思考┨
  3. ┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛
复制代码
第二组是如下:
  1. 飘过′`)
  2.   ,?′ ?,?′`)
  3.  (?,?′  (?*?〃′`)
  4.      拿分 ,?′ ?,?′`)
  5.          (?,?′ (?闪人*
复制代码
总是类似的文本画,

逐行显示似乎是可以,每次 echo 一下 ,然后  ping 127.1 -n 5 >nul 来延时显示

那么如果是要逐字显示呢?如何实现?

还有我显示好第一组,当第二组,出现的时候能不能 第二组 内容 出现第一行的时候,第一组已经显示出来的内容向上滚动消失一行,直至第一组消失完毕,只剩小第二组呢?

逐行,逐字,还有滚屏,是我弄批处理,一直没有弄明白的,

看了一些大侠的实例,但是可能是讲解不够详细,对于我这个菜鸟都不算的批处理鼓捣者还太深奥,一直没搞明白。

希望能有好心的高手帮忙,给予详细的指点,让我能学以致用。bow

逐字显示:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ("设成变量,逐字偏移") do (
  3.    set str=%%a
  4.    for /l %%a in (0 1 7) do set<nul /p=@!str:~%%a,1!
  5.    rem 退格符“防空”
  6. )
  7. pause
复制代码

TOP

bat做这个有点不切实际啊。
我看还不如用ppt或者flash更方便哇

TOP

逐字显示,刚才有搜索了一下,大致应该是可以写出来了

但是滚动还是不太懂,希望指点

TOP

滚动嘛,我的想法是先换行再退行定位至目标位置

TOP

滚动嘛,我的想法是先换行再退行定位至目标位置
zm900612 发表于 2011-5-20 21:03


不是很明白ls的意思,

逐字显示的似乎懂了,

滚动,我以前似乎在什么地方看到过,应该能实现吧

TOP

逐字显示:@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ("设成变量,逐字偏移") do (
   set str=%%a
   for /l %%a in (0 1 7) do set
zm900612 发表于 2011-5-20 20:37


直接copy你的代码,没有看到逐字显示的效果

TOP

本帖最后由 batman 于 2011-5-20 22:44 编辑

楼主的这个效果很容易,现在都不想写特效了。。。

如要动态显示10行内容,先设定10个变量,每个变量的值为输出的一行内容,变量不停变换则输出就变了,当然也可以设置为一个变量(内含换行)。。。
***共同提高***

TOP

本帖最后由 batman 于 2011-5-20 23:34 编辑

还是写一个,效果没细究了:
  1. @echo off&setlocal enabledelayedexpansion
  2. mode con cols=50 lines=10&color 9f
  3. title 长情 --- 作者:轶名
  4. for /f "delims=:" %%a in ('findstr /n "splitline.*$" %~fs0') do set "sk=%%a"
  5. for /f "delims=" %%a in ('more +%sk% %~fs0') do set /a n+=1&set "_!n!=        %%a"
  6. set /a min=1,max=6&echo,&echo,
  7. :lp
  8. for /l %%a in (%min%,1,%max%) do (
  9.     set "str=!_%%a!"
  10.     for /l %%b in (1,1,30) do (
  11.         if defined str (
  12.            set /p=!str:~,1!<nul
  13.            set "str=!str:~1!"
  14.         )
  15.         for /l %%c in (1,1,400) do echo>nul
  16.     )
  17.     echo,
  18. )
  19. set /a m=max-4
  20. cls&echo,&echo,&for /l %%a in (%m%,1,%max%) do echo,!_%%a!
  21. if %max% lss %n% set /a max+=1,min=max&goto lp
  22. pause>nul&goto :eof   
  23. ::::splitline:::::
  24. 我的思念就像夕阳下的影子越来越长,
  25. 直到无法在留住那模糊的记忆,
  26. 才收敛起那颗早已破碎的心,
  27. 拾起满地散落的忧伤,
  28. 回到堆满思绪的小屋。
  29. 把忧伤,把思念化成一粒粒墙角静静的微尘,
  30. 在没有人来的时候,
  31. 不去碰触她。
  32.    
  33. 我的思念就像灯火阑珊下的影子好长好长,
  34. 慢慢延伸到窗外那颗充满沧桑的老树下。
  35. 寂寞的老树是孤独的。
  36. 我愿爬上树梢,
  37. 做它最顶端的一片叶子。
  38. 柔柔的风是孤独的,
  39. 任由它吹起我的思念。
  40. 满院的月光似水柔情,
  41. 那一颗颗晶莹的星,
  42. 是我散满天空对你的期望。
  43. 很多时候,
  44. 我都是这样想你。
  45. 你就像一杯浓浓的奶茶,
  46. 真想停住苍茫的脚步,
  47. 闭起双眼静静的品尝那淡淡的清香。
  48.    
  49. 很多时候,
  50. 我把自己分割成一个个小段。
  51. 让每一个小段都有一份思念,
  52. 那样不会聚集一个更大的思念也就不会受伤。
  53. 小小的思念是一种幸福,
  54. 是一种相思的美。
  55. 如果可以,
  56. 我会把自己分割成千百万个小段,
  57. 好让我的思念追随你飘荡的衣襟。
  58. 清幽的小河,
  59. 泛起如雪的白浪。
  60. 把心折成一只小船,
  61. 放逐在最顶端的浪花。
  62. 如果还有机会,
  63. 在我还没被吞没的时候,
  64. 为你在写下一首诗。
  65. 那一段段缭绕的文字,
  66. 会慢慢的沉入水底,
  67. 直到消失。
  68. 而我的思念却越来越深。
  69.    
  70. 轻轻地推开冰封已久的心门,
  71. 让那散落满地的灰尘,
  72. 在那个狭小空间里晒晒太阳。
  73. 拿起扫把清扫一片寂寞,
  74. 小屋豁然开朗。
  75. 想你在瞬间化作万只彩蝶翩翩起舞。
  76. 你会莫名的心动吗?
  77. 那是我思念的手臂在触摸你。
  78. 我把遥远的思念化成一个个想你的点,
  79. 再用心底最美的一束光串联。
  80. 离你越远我的点就越多,
  81. 我心里的光会随着点的增加而无限延长。
  82. 想你了,
  83. 我用串联的点捎去我的思念。
  84. 黑夜里,
  85. 我用那束光为你照亮回家的路。
  86. 点慢慢的增加,
  87. 而那束光也在延长。
  88. 直到有一天你拉住我点的那头,
  89. 我会小心的拽住点的这头。
  90. 让你顺着我编织的梦,
  91. 不再醒。
复制代码
***共同提高***

TOP

回复 9# batman


    这个的确是可以实现这个效果,整屏滚动,但是当处理特殊字符画的时候,特殊字符不对
遇到空格 没有显示出来,还有遇到一些<< 之类的特殊符号的时候,会报错。
             <<<<$Oo====)    祝你:
/\      ###   <   ____/
</\\_   / _ \  ( )^^^^/      新年快乐 合家幸福!
   \ \_/ / \ \_( )
    \___/   \___/            心想事成 红包拿来!
    /,, \,, /,, \,,

TOP

学习了!  那个长情滴。。。

TOP

Learning……

TOP

返回列表