标题: [文本处理] 批处理怎样把文本逐字显示,并做整屏向上滚动? [打印本页]
作者: jasonshaw 时间: 2011-5-20 20:27 标题: 批处理怎样把文本逐字显示,并做整屏向上滚动?
想做这样一个批处理
主要功能是输出一大对文本图案,然后最好能逐行显示出来,
设定一个cmd窗口的大小之后,当显示完一图案之后,能够随着下面的逐行显示,而已经显示出来的内容逐行向上滚动而消失
比如:第一组是如下- ┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓┏┯┯┓
- ┠期待┨┠追求┨┠珍惜┨┠拼搏┨┠激励┨┠进取┨┠奋斗┨┠思考┨
- ┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛┗┷┷┛
复制代码
第二组是如下:- 飘过′`)
- ,?′ ?,?′`)
- (?,?′ (?*?〃′`)
- 拿分 ,?′ ?,?′`)
- (?,?′ (?闪人*
复制代码
总是类似的文本画,
逐行显示似乎是可以,每次 echo 一下 ,然后 ping 127.1 -n 5 >nul 来延时显示
那么如果是要逐字显示呢?如何实现?
还有我显示好第一组,当第二组,出现的时候能不能 第二组 内容 出现第一行的时候,第一组已经显示出来的内容向上滚动消失一行,直至第一组消失完毕,只剩小第二组呢?
逐行,逐字,还有滚屏,是我弄批处理,一直没有弄明白的,
看了一些大侠的实例,但是可能是讲解不够详细,对于我这个菜鸟都不算的批处理鼓捣者还太深奥,一直没搞明白。
希望能有好心的高手帮忙,给予详细的指点,让我能学以致用。bow
作者: CrLf 时间: 2011-5-20 20:37
逐字显示:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ("设成变量,逐字偏移") do (
- set str=%%a
- for /l %%a in (0 1 7) do set<nul /p=@!str:~%%a,1!
- rem 退格符“防空”
- )
- pause
复制代码
作者: applba 时间: 2011-5-20 20:43
bat做这个有点不切实际啊。
我看还不如用ppt或者flash更方便哇
作者: jasonshaw 时间: 2011-5-20 20:49
逐字显示,刚才有搜索了一下,大致应该是可以写出来了
但是滚动还是不太懂,希望指点
作者: CrLf 时间: 2011-5-20 21:03
滚动嘛,我的想法是先换行再退行定位至目标位置
作者: jasonshaw 时间: 2011-5-20 22:18
滚动嘛,我的想法是先换行再退行定位至目标位置
zm900612 发表于 2011-5-20 21:03
不是很明白ls的意思,
逐字显示的似乎懂了,
滚动,我以前似乎在什么地方看到过,应该能实现吧
作者: jasonshaw 时间: 2011-5-20 22:34
逐字显示:@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你的代码,没有看到逐字显示的效果
作者: batman 时间: 2011-5-20 22:41
本帖最后由 batman 于 2011-5-20 22:44 编辑
楼主的这个效果很容易,现在都不想写特效了。。。
如要动态显示10行内容,先设定10个变量,每个变量的值为输出的一行内容,变量不停变换则输出就变了,当然也可以设置为一个变量(内含换行)。。。
作者: batman 时间: 2011-5-20 23:32
本帖最后由 batman 于 2011-5-20 23:34 编辑
还是写一个,效果没细究了:- @echo off&setlocal enabledelayedexpansion
- mode con cols=50 lines=10&color 9f
- title 长情 --- 作者:轶名
- for /f "delims=:" %%a in ('findstr /n "splitline.*$" %~fs0') do set "sk=%%a"
- for /f "delims=" %%a in ('more +%sk% %~fs0') do set /a n+=1&set "_!n!= %%a"
- set /a min=1,max=6&echo,&echo,
- :lp
- for /l %%a in (%min%,1,%max%) do (
- set "str=!_%%a!"
- for /l %%b in (1,1,30) do (
- if defined str (
- set /p=!str:~,1!<nul
- set "str=!str:~1!"
- )
- for /l %%c in (1,1,400) do echo>nul
- )
- echo,
- )
- set /a m=max-4
- cls&echo,&echo,&for /l %%a in (%m%,1,%max%) do echo,!_%%a!
- if %max% lss %n% set /a max+=1,min=max&goto lp
- pause>nul&goto :eof
- ::::splitline:::::
- 我的思念就像夕阳下的影子越来越长,
- 直到无法在留住那模糊的记忆,
- 才收敛起那颗早已破碎的心,
- 拾起满地散落的忧伤,
- 回到堆满思绪的小屋。
- 把忧伤,把思念化成一粒粒墙角静静的微尘,
- 在没有人来的时候,
- 不去碰触她。
-
- 我的思念就像灯火阑珊下的影子好长好长,
- 慢慢延伸到窗外那颗充满沧桑的老树下。
- 寂寞的老树是孤独的。
- 我愿爬上树梢,
- 做它最顶端的一片叶子。
- 柔柔的风是孤独的,
- 任由它吹起我的思念。
- 满院的月光似水柔情,
- 那一颗颗晶莹的星,
- 是我散满天空对你的期望。
- 很多时候,
- 我都是这样想你。
- 你就像一杯浓浓的奶茶,
- 真想停住苍茫的脚步,
- 闭起双眼静静的品尝那淡淡的清香。
-
- 很多时候,
- 我把自己分割成一个个小段。
- 让每一个小段都有一份思念,
- 那样不会聚集一个更大的思念也就不会受伤。
- 小小的思念是一种幸福,
- 是一种相思的美。
- 如果可以,
- 我会把自己分割成千百万个小段,
- 好让我的思念追随你飘荡的衣襟。
- 清幽的小河,
- 泛起如雪的白浪。
- 把心折成一只小船,
- 放逐在最顶端的浪花。
- 如果还有机会,
- 在我还没被吞没的时候,
- 为你在写下一首诗。
- 那一段段缭绕的文字,
- 会慢慢的沉入水底,
- 直到消失。
- 而我的思念却越来越深。
-
- 轻轻地推开冰封已久的心门,
- 让那散落满地的灰尘,
- 在那个狭小空间里晒晒太阳。
- 拿起扫把清扫一片寂寞,
- 小屋豁然开朗。
- 想你在瞬间化作万只彩蝶翩翩起舞。
- 你会莫名的心动吗?
- 那是我思念的手臂在触摸你。
- 我把遥远的思念化成一个个想你的点,
- 再用心底最美的一束光串联。
- 离你越远我的点就越多,
- 我心里的光会随着点的增加而无限延长。
- 想你了,
- 我用串联的点捎去我的思念。
- 黑夜里,
- 我用那束光为你照亮回家的路。
- 点慢慢的增加,
- 而那束光也在延长。
- 直到有一天你拉住我点的那头,
- 我会小心的拽住点的这头。
- 让你顺着我编织的梦,
- 不再醒。
复制代码
作者: jasonshaw 时间: 2013-5-16 12:08
回复 9# batman
这个的确是可以实现这个效果,整屏滚动,但是当处理特殊字符画的时候,特殊字符不对
遇到空格 没有显示出来,还有遇到一些<< 之类的特殊符号的时候,会报错。
<<<<$Oo====) 祝你:
/\ ### < ____/
</\\_ / _ \ ( )^^^^/ 新年快乐 合家幸福!
\ \_/ / \ \_( )
\___/ \___/ 心想事成 红包拿来!
/,, \,, /,, \,,
作者: 狱渊 时间: 2013-8-7 20:02
学习了! 那个长情滴。。。
作者: tangqingfu 时间: 2013-8-8 07:35
Learning……
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |