批处理显示闪烁文字
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
批处理显示闪烁文字
批处理显示闪烁文字
我做出来的效果有点不同:一大屏幕,跳出来多行不整齐的唯一的一句----"说明床前明月光说明"
将下面示例的内容保存为 .BAT 文件: ::文字分割闪烁效果示例1:
@echo off&color 2f&setlocal enabledelayedexpansion
title 本程序仅用于“文字分割闪烁效果”的演示-寒夜孤星【初学者】"
set han=床前明月光疑是地上霜举头望明月低头思故乡
for %%i in (%han%) do (
set ye=%%i
echo.
echo.
for /l %%j in (0,1,5) do (
set/p=!ye:~%%j,1!<nul
ping -n 0
)
call :xing %%i
)
pause>nul
exit
:xing
for /l %%k in (1,1,10) do (
ping /n 0
set /p a=说明<nul
set /p a= <nul
set /p a=说明<nul
ping /n 0
set /p a=%1<nul
)
goto :eof 郁闷,示例中的“说明”那两个字的位置应该是31个退格光标符号!可一打完更新博文他就米有啦……
由于这里的大部分命令在以前都已经将过,所以就不详细展开了。
“ set han=床前明月光疑是地上霜举头望明月低头思故乡 ”,定义字符串为
“ 床前明月光疑是地上霜举头望明月低头思故乡 ”。
“ for %%i in (%han%) do… ”,由于 han 中含有空格,则以空格为分隔符将 han 中的每一个部分依次赋给变量 %%i 。
“ set ye=%%i ”,设置 ye 为 %%i ;“ for /l %%j in (0,1,5) do…”,为 %%j 赋值为0到5。
“ set/p=!ye:~%%j,1!<nul ”依次取出变量 ye 中的每一个字符,并显示(将在下面详细讲解这个截取字符串)。
“ ping -n 0 ”,设置输出每个字符的时间延迟。
“ for /l %%k in (1,1,10) do… ”,循环10次执行后面的命令;
“ ping /n 0 ”,设置每次闪烁的时间延迟。
“ set /p a= … <nul ”,由3个 set /p 提示信息实现文字闪动效果。
“ goto :eof ”,goto 命令一个特殊固定语法:如果启用了命令扩展(即默认状态),并且使用带有目标标签为 :EOF 的 goto 命令,则可以在不定义标签的情况下将控制传送到当前批处理脚本文件的末端,然后退出批处理脚本文件。
使用 goto 和 :EOF 标签时,必须在标签前插入冒号。
eof就是文件尾部滴意思。
关于“ call :xing %%i ”:进入 :xing 标签处的部分,并将变量 %%i 一起带入。
关于“ 字符串截取 ”: %a:~[m[,n]]%
方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0,即截取从第1个字符开始),n为截取长度(缺省为全部)。
上面所述用法其实相当于vbs函数mid、left、right
%a:~0,n% 相当于函数left(a,n) 取左边n位
%a:~-m% 相当于函数right(a,m)取右边m位
%a:~m,n% 相当于函数mid(a,m+1,n) 从m+1位开始取n位
%a:~m,-n% 相当于函数mid(a,m+1,len(a)-m-n),从m+1位开始,至倒数n+1位
%a:~m % 相当于函数mid(a,m+1,len(a)-m) 或者right(a,len(a)-m),从m+1位开始取右边全部。
先看一个示例:
批处理示例1:运行效果:
@echo off
set a=寒夜孤星【初学者】
set han=%a:~1,2%
echo %han%
pause
夜孤
请按任意键继续...
执行后,我们会发现只显示了“ 夜孤 ”两个字,我们的变量%a%的值不是为寒夜孤星【初学者】吗?怎么只显示了第2个字和第3个字“ 夜孤 ”,分析结果我们就可以很容易看出“ %a:~1,2% ”就是显示变量a里从2位(偏移量1)开始的2个字符!
分析set han=%a:~1,2% :set是命令,han是变量值,a要进行字符操作的变量,"1"从变量"a"第几位开始显示,"2"表示显示几位。
合起来就是把变量a的值从第2位(偏移
量1)开始,把2个字符赋予给变量han 。
这样应该明白了吧~
批处理示例2:运行效果:
@echo off
set a=寒夜孤星【初学者】
set han=%a:~-5%
echo %han%
pause
【初学者】
请按任意键继续...
个就是把变量a倒数5位的值给变量han 。
批处理示例3:运行效果:
@echo off
set a=寒夜孤星【初学者】
set han=%a:~2%
echo %han%
pause
孤星【初学者】
请按任意键继续...
这个就是把变量a的从第2位开始后面全部的值给变量han 。
批处理示例4:运行效果:
@echo off
set a=寒夜孤星【初学者】
set han=%a:~0,-5%
echo %han%
pause
寒夜孤星
请按任意键继续...
从结果分析,很容易分析出,这是把变量a的值从0位开始,到倒数第5位之间的值全部赋予给han 。
批处理示例5:运行效果:
@echo off
set a=寒夜孤星【初学者】
set han=%a:~2,-5%
echo %han%
pause
孤星
请按任意键继续...
那么他就是显示从第3位(偏移量2)开始减去倒数5位字符的值,并赋予给变量han 。
Powered by 无名小鬼。