-
- @echo off
- echo ---认识退格键 ""
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo 中国人民解放军WS
- echo ---退格符就是一辆车走的路程,原有的字符就是一条路,
- echo 退格符后面的字符就是车,车过了,路还是路。
- echo 有的高手把退格符叫---挖土机,形象吧。
- echo ********************************
- echo ---动画演示退格符-■---
- echo *********************************
- for /l %%j in (1 1 100) do (call echo %time%>nul)
- color 0c
- set bs=
- for /l %%i in (1 1 10) do (
- for /l %%j in (1 1 200) do (call echo %time%>nul)
- call set bb=%%bs:~%%i%%
- call set tt= 中国人民解放军万岁%%bb%%■人民英雄永锤不朽
- call echo %%tt%%
- )
- echo 多象flash的遮罩,不过遮罩是遮住的显示,没遮住的不显示,
- echo 这里刚好与flash的遮罩功能相反
复制代码
-
- @echo off
- echo ----退格符应用动画---逐渐显示小方块
- color 0c
- set bs=
- for /l %%i in (1 1 120) do (
- set bs=■%bs%■
- for /l %%1 in (1 1 100) do (call echo %time%>nul)
- call set /p=%%bs%%<nul
- )
- echo --------------
- set bs=
- for /l %%i in (1 1 200) do (
- set bs=%bs%■
- for /l %%1 in (1 1 100) do (call echo %time%>nul)
- call set /p=%%bs%%<nul
- )
复制代码 上述两段程序只有一字之差,确显示出完全不同的效果。“set bs=■%bs%■ 和set bs=%bs%■”-
- @echo off
- color 0c
- set bs=
- for /l %%i in (1 1 10) do (
- set bs=%bs%■
- for /l %%1 in (1 1 100) do (call echo %time%>nul)
- call echo %%bs%%
- )
复制代码 程序分析:一切都是nul再作怪。把前面的程序最后一句改成这样:call echo %%bs%%,将得到靠左面的一列
小方块。因为迭代变量是 “bs=方块 退格 方块”,退格后bs的值就只能是 永远是一个方块。
----------------两个迭代变量------------------------------
tt=%tt%123 --------结果是:123,123123,123123123.。。。。。。
tt=%tt%123 --------123,12123,1212123,121212123......
--------------两个迭代显示--------------------------------
echo %tt%123
set/p=%tt%123<nul
----------------------------迭代当然离不开循环了。
-------------------------------------如何在左面插入空格- @echo off
- echo 在■ 的左面插入10个空格
- cls
- setlocal enabledelayedexpansion
- color 0c
- for /l %%i in (1 1 10) do (
- set tt=0!tt!
- )
- set tt=%tt%■
- set tt=%tt:0= %
- echo !tt!
复制代码 其实插入空格最好的办法是利用set变量
set space= ----这样是不行的
set space=“ ” 这样还是不行的
要这样:
set "space= "
要10个空格就循环吧- for /l %%1 in (1 1 10) do (call set "space= %%space%%")
复制代码
- @echo off
- echo ---匀速向左运动,显示2个整行
- set tt=
- color 1d
- for /l %%i in (1 1 78) do (
- for /l %%1 in (1 1 100) do (call echo %time%>nul)
- set tt=■■
- call set/p=%%tt%%<nul
- )
- echo.
-
-
- echo ---匀速向左运动,显示2个整行 英文
- set tt=
- color 1d
- set tt=
- for /l %%i in (1 1 158) do (
- for /l %%1 in (1 1 50) do (call echo %time%>nul)
- set tt=AA
- call set/p=%%tt%%<nul
- )
- echo.
-
-
- echo ---匀速向左运动,显示2个整行 中英文混合
- set tt=
- color 1d
- set tt=
- for /l %%i in (1 1 156) do (
- for /l %%1 in (1 1 50) do (call echo %time%>nul)
- set tt=A■
- call set/p=%%tt%%<nul
- )
- echo.
复制代码
- @echo off
- echo ---迷失的A
- set tt=
- color 1d
- set tt=
- for /l %%i in (1 1 115) do (
- for /l %%1 in (1 1 50) do (call echo %time%>nul)
- set tt=■A
- call set/p=%%tt%%<NUL
- )
- echo.
- echo ----
- set tt=
- color 1d
- set tt=
- for /l %%i in (1 1 120) do (
- for /l %%1 in (1 1 50) do (call echo %time%>nul)
- set tt=■A
- call set/p=%%tt%%<NUL
- )
复制代码 这的放法是个细节,要想成为整行,就在这里下功夫。循环终值=(40-1)*行数,英文 循环终值=(80-1)*行数
混合 循环终值=(80-2)*行数 迷失的A例外--循环终值=40*行数 或 循环终值=40*行数-1(显示A)-
- @echo off
- echo ---居中显示
- color 1d
- set tt=
- set ss=
- for /l %%i in (1 1 16) do (
- call set ss=%%ss%%0
- )
- call set ss=%%ss:0= %%
- call set /p=%%ss%%<nul
- for /l %%i in (1 1 21) do (
- for /l %%1 in (1 1 50) do (call echo %time%>nul)
- call set tt=■■
- call set /p=%%tt%%<nul
- )
- echo.
复制代码
-
- @echo off
- echo ---退格符完成简易向右运动
- cls
- echo.&echo.&echo.
- color 1d
- set tt=
- set ss=
- set bs=
- for /l %%i in (1 1 78) do (
- call set ss=%%ss%%0
- )
- set ss=%ss:0= %
- set /p=%ss%<nul
- for /l %%i in (1 1 15) do (
- for /l %%1 in (1 1 100) do (call echo %time%>nul)
- call set bs=%%bs%%
- call set tt=%%bs%%■
- call set /p=%%tt%%<nul
- )
- echo.
- echo 原理是利用78个空格基本铺满第一行,给小方块留下2byte的位置,
- echo 利用退格符相当于是它后面字符走的路程的原里,让退格符逐渐增加,即字符的路程加大
- echo 这样就实现了反方向运动,为了好记忆我自己把退格符的这种性质叫退格符的--------
- echo 路程原理 ,如果退格符后面没字符,这个路程也就不起作用了
复制代码
[ 本帖最后由 myzwd 于 2009-3-9 16:19 编辑 ] |