Board logo

标题: [特效代码] 批处理如何实现在cmd窗口显示一段从左往右移动的字符串 [打印本页]

作者: hisplay    时间: 2008-8-16 10:17     标题: 批处理如何实现在cmd窗口显示一段从左往右移动的字符串

本帖最后由 pcl_test 于 2016-11-21 23:34 编辑

求助:--求一个特效...如:“我爱批处理之家”。字体从左往右移动..字体从左边缘出现,第一个是“我”第二个是“爱”以此类推。。等到窗口右边源“家”字消失,然后到“之”以此类推。循环操作!按Y下一步 N返回..如果不进行任何操作。则循环移动上面字体。。。不知道大家明不明白呢。。。在此先谢谢大家了。。。
如果能把字体做成变色效果那就更好。。。。。
      有答案的朋友,能不能解释一下代码命令!
..
作者: pusofalse    时间: 2008-8-16 11:03

楼主所说的“循环操作!按Y下一步 N返回..如果不进行任何操作。则循环移动上面字体。。。”
cmd是单任务的,循环移动的时候不可能接受用户输入的。
作者: pusofalse    时间: 2008-8-16 11:16

粗略的实现了,不知是否是楼主的意思。
  1. @echo off&setlocal enabledelayedexpansion&title test
  2. if "%1" neq "" goto next
  3. start/b %~fs0 a
  4. set "str=我爱批处理之家"
  5. :loop
  6. for /l %%a in (0 1 6) do (
  7. if not exist %temp%\had.tmp (
  8.          set/p=!str:~%%a,1!<nul
  9.          for /l %%i in (1 1 500) do echo.>nul
  10.          if %%a equ 6 (
  11. for /l %%s in (1 1 20) do set/p= <nul&ping -n>nul
  12. )
  13. ) else (
  14. del %temp%\had.tmp
  15. cls&echo  这里是“下一步”的操作,不知你说的输入n返回,是返回到哪里。
  16. pause>nul&exit/b
  17. )
  18. )
  19. goto loop
  20. :next
  21. set/p var=
  22. if /i %var% equ y (echo a>%temp%\had.tmp)
  23. exit
复制代码

作者: hisplay    时间: 2008-8-16 12:08

原帖由 pusofalse 于 2008-8-16 11:03 发表
楼主所说的“循环操作!按Y下一步 N返回..如果不进行任何操作。则循环移动上面字体。。。”
cmd是单任务的,循环移动的时候不可能接受用户输入的。

  如果不能执行循环重复。。。那把该命令多复制几次。会不会出现几次呢?

------谢谢版主的帮助...辛苦您了。。


爱我
批爱我
理批爱我
处理批爱我
之处理批爱我
家之处理批爱我
-----------------
上面是从左出现的效果。。
家之处理批爱我    ---------------------------→ 家之处理批爱我 -----------------------------------------------------------------------------→ 家之处理批爱我
========
家之处理批爱
家之处理批
家之处理
家之处
家之

---------------
上面的是右边的效果

最好能够把字体调为变色效果。。。
下面的朋友们。。帮帮忙------谢了
作者: pusofalse    时间: 2008-8-16 12:24

- -||| 看来我完全理解错误了啊。
作者: pusofalse    时间: 2008-8-16 13:00

  1. @echo off&setlocal enabledelayedexpansion
  2. set "str=我爱批处理之家"
  3. :loop
  4. for /l %%a in (0 1 6) do (
  5.         set "var="
  6.         for /l %%i in (%%a -1 0) do set "var=!var!!str:~%%i,1!"
  7.         ping -n 2 127.1>nul
  8.         echo !var!&color 0%%a
  9. )
  10. for /l %%a in (6 -1 1) do echo !var:~,%%a!&color 0%%a&ping 127.1 /n 2 >nul
  11. goto loop
复制代码

作者: hisplay    时间: 2008-8-16 14:03

版主厉害。。很好。效果不错。。辛苦了
→我
→爱我
→批爱我
→理批爱我
→处理批爱我
→之处理批爱我
→家之处理批爱我
-----------------
上面是从左出现的效果。。
字移动过程中的效果“----------移动---------→ ”作为提示......“家之处理批爱我    ----------移动---------→ 家之处理批爱我 -----------------------移动-------------------------------------------→ 家之处理批爱我”
========
→家之处理批爱
→家之处理批
→家之处理
→家之处
→家之
→家
走字效果。。
作者: 安静    时间: 2008-8-16 16:05

要是把"我爱批处理之家"改成"家之理处批爱我"...

那就是正常人看的了,...

不知LZ要干什么?...

弄回文吗?..
作者: 523066680    时间: 2008-8-16 17:51

我在cn-dos的时候写的看看是不是这样
『楼 主』:  做了一个自己满意的滚动字幕

::我还嫩……不过这篇自我满意
@echo off &color 0a
setlocal enabledelayedexpansion
set na=          CN-DOS        
:a
for /l %%a in (16,-1,0) do (
set ne=!na:~%%a,8!
echo.                              --!ne!--
for /l %%b in (1,1,2) do ping -n>nul
cls
)
goto a
作者: hisplay    时间: 2008-8-16 20:22

呵呵..楼主的  谢谢哦..就是这样的...
作者: shqf    时间: 2008-8-16 20:23

楼主要的是如下走字效果吧:
  1. @echo off&setlocal enabledelayedexpansion
  2. color 03&mode con cols=28 lines=5
  3. set "str=              家之理处批爱我"
  4. :loop
  5. for /l %%a in (1 1 21) do (
  6.         echo.
  7.         if "!str:~-%%a,14!"=="              " (echo.) else (
  8.         echo !str:~-%%a,14!)
  9.         for /l %%b in (1 1 800) do echo.>nul
  10.         cls
  11.         )
  12. goto loop
复制代码

[ 本帖最后由 shqf 于 2008-8-16 20:24 编辑 ]




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2