标题: [特效代码] 谁可以发个简单的逐字显示的批处理? [打印本页]
作者: nnnn111 时间: 2011-10-5 15:53 标题: 谁可以发个简单的逐字显示的批处理?
- @echo off
- color 1f
- mode con cols=40 lines=15
- :w
- set "a=我 树 敌 无 数 却 从 来 帝 烧 掉 它"
- for %%i in (%a%) do set /p=%%i<nul&ping 1 -n 1 -w 1>nul
- echo --------------------------------------
- echo 任意键退出
- pause>nul
复制代码
把set "a=我 树 敌 无 数 却 从 来 帝 烧 掉 它"变成
set "a=我树敌无数却从来帝烧掉它"
怎么改代码
作者: 601997526 时间: 2011-10-5 16:31
- @echo off&setlocal ENABLEDELAYEDEXPANSION
- color 1f
- mode con cols=40 lines=15
- :w
- set "a=我树敌无数却从来帝烧掉它"
- for /l %%i in (0 1 11) do set /p=!a:~%%i,1!<nul&ping -n 2 -w 1 127.1>nul
- echo --------------------------------------
- echo 任意键退出
- pause>nul
复制代码
作者: awk 时间: 2011-10-5 18:06
- @echo off
- setlocal enabledelayedexpansion
- set "str=我树敌无数却从来帝烧掉它"
- set n=0
- :loop
- set t=!str:~%n%,1!
- if "!t!" neq "" (
- set /p =!t!<nul
- set /a n+=1
- ping -n 2 127.1 >nul
- goto :loop
- )
复制代码
作者: 小麦 时间: 2011-10-5 19:14
本帖最后由 小麦 于 2011-10-5 19:24 编辑
打发错了 下面才是 。
作者: 小麦 时间: 2011-10-5 19:15
本帖最后由 小麦 于 2011-10-5 19:23 编辑
回复 1# nnnn111
只需要改一点点就行了- @echo off
- color 1f
- mode con cols=40 lines=15
- :w
- set "a=我 树 敌 无 数 却 从 来 帝 烧 掉 它"
- for %%i in (%a%) do set /p=%%i<nul&ping -n 2 -w 1 127.1>nul
- echo --------------------------------------
- echo 任意键退出
- pause>nul
复制代码
作者: 545810831 时间: 2011-10-5 20:22
- @echo off&setlocal enabledelayedexpansion
- color 1f
- mode con cols=40 lines=15
- set "a=我树敌无数却从来帝烧掉它"
- :w
- set/p=!a:~0,1!<nul&ping -n 2 127.0.0.1>nul
- set a=!a:~1!
- if "!a!" neq "" goto w
- pause>nul
复制代码
作者: wc726842270 时间: 2011-10-6 10:27
本帖最后由 wc726842270 于 2011-10-6 10:50 编辑
- @echo off 2>nul 3>nul
- rem str中的变量用非英文编写,全角标,半角标没有试。试验的时候最好在单独的文件夹中,如果出错,不明白的尽量“X”掉
- setlocal enabledelayedexpansion
- set "col=123456789abcdef"
- set /a n2=-1,over=15
- set "str=枫中残雪:无心,无思,无情,无乡,无缘。没有失去,对我来说也没有珍惜。希望从何来,算了,还是不要明白好了。"
- :start
- set /a n=%random%%%14+1,n2+=1
- if %over% equ %n% goto :start
- if "!str:~%n2%,1!" neq "" (
- >"!str:~%n2%,1!" set /p "= "<nul
- findstr /a:0!col:~%n%,1! .* "!str:~%n2%,1!*"
- ping /n 2 127.1>nul
- del !str:~%n2%,1!
- set "over=%n%"
- )&&goto :start
复制代码
作者: zaixinxiangnian 时间: 2011-10-6 16:25
回复 3# awk
能否给解释下这个IF语句是怎么执行的?我实在不懂,这里面的!t!怎么也不会等于空啊,那为什么还可以执行下面的呢???- :loop
-
- set t=!str:~%n%,1!
-
- if "!t!" neq "" (
-
- set /p =!t!<nul
-
- set /a n+=1
-
- ping -n 2 127.1 >nul
-
- goto :loop
-
- )
复制代码
作者: awk 时间: 2011-10-6 16:43
回复 8# zaixinxiangnian
取到最后一个字符之后,再次循环的时候,变量 t 的值就是空了。
作者: zaixinxiangnian 时间: 2011-10-6 16:56
回复 9# awk
就是变量 t 的值就是空才执行IF语句的呀!t的值就是通过if 里面%n%一个一个的变化才那样显示的,那T的值在最后一个字符之前是怎么循环的呢?
作者: awk 时间: 2011-10-6 16:59
回复 10# zaixinxiangnian
neq表示“不等于”
作者: zaixinxiangnian 时间: 2011-10-6 17:25
回复 11# awk
谢谢awk的回答,明白了,把EQU和NEQ搞混乱了
作者: zaixinxiangnian 时间: 2011-10-6 17:37
回复 1# nnnn111 - set "a=我 树 敌 无 数 却 从 来 帝 烧 掉 它"
- set a=%a: =%
- echo %a%
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |