找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29737|回复: 12

[特效代码] 谁可以发个简单的逐字显示的批处理?

[复制链接]
发表于 2011-10-5 15:53:12 | 显示全部楼层 |阅读模式
  1. @echo off
  2. color 1f
  3. mode con cols=40 lines=15
  4. :w
  5. set "a=我 树 敌 无 数 却 从 来  帝  烧 掉 它"
  6. for %%i in (%a%) do set /p=%%i<nul&ping 1 -n 1 -w 1>nul
  7. echo --------------------------------------
  8. echo 任意键退出
  9. pause>nul
复制代码
把set "a=我 树 敌 无 数 却 从 来  帝  烧 掉 它"变成
set "a=我树敌无数却从来帝烧掉它"
怎么改代码
发表于 2011-10-5 16:31:03 | 显示全部楼层
  1. @echo off&setlocal ENABLEDELAYEDEXPANSION
  2. color 1f
  3. mode con cols=40 lines=15
  4. :w
  5. set "a=我树敌无数却从来帝烧掉它"
  6. for /l %%i in (0 1 11) do set /p=!a:~%%i,1!<nul&ping -n 2 -w 1 127.1>nul
  7. echo --------------------------------------
  8. echo 任意键退出
  9. pause>nul
复制代码

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 乐于助人

查看全部评分

发表于 2011-10-5 18:06:11 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "str=我树敌无数却从来帝烧掉它"
  4. set n=0
  5. :loop
  6. set t=!str:~%n%,1!
  7. if "!t!" neq "" (
  8.     set /p =!t!<nul
  9.     set /a n+=1
  10.     ping -n 2 127.1 >nul
  11.     goto :loop
  12. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 乐于助人

查看全部评分

发表于 2011-10-5 19:14:31 | 显示全部楼层
本帖最后由 小麦 于 2011-10-5 19:24 编辑

打发错了 下面才是 。
发表于 2011-10-5 19:15:42 | 显示全部楼层
本帖最后由 小麦 于 2011-10-5 19:23 编辑

回复 1# nnnn111

只需要改一点点就行了
  1. @echo off
  2. color 1f
  3. mode con cols=40 lines=15
  4. :w
  5. set "a=我 树 敌 无 数 却 从 来  帝  烧 掉 它"
  6. for %%i in (%a%) do set /p=%%i<nul&ping -n 2 -w 1 127.1>nul
  7. echo --------------------------------------
  8. echo 任意键退出
  9. pause>nul
复制代码

评分

参与人数 1PB +1 收起 理由
Hello123World + 1 仔细看题

查看全部评分

发表于 2011-10-5 20:22:41 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. color 1f
  3. mode con cols=40 lines=15
  4. set "a=我树敌无数却从来帝烧掉它"
  5. :w
  6. set/p=!a:~0,1!<nul&ping -n 2 127.0.0.1>nul
  7. set a=!a:~1!
  8. if "!a!" neq "" goto w
  9. pause>nul
复制代码

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 乐于助人

查看全部评分

发表于 2011-10-6 10:27:29 | 显示全部楼层
本帖最后由 wc726842270 于 2011-10-6 10:50 编辑

  1. @echo off 2>nul 3>nul
  2. rem str中的变量用非英文编写,全角标,半角标没有试。试验的时候最好在单独的文件夹中,如果出错,不明白的尽量“X”掉
  3. setlocal enabledelayedexpansion
  4. set "col=123456789abcdef"
  5. set /a n2=-1,over=15
  6. set "str=枫中残雪:无心,无思,无情,无乡,无缘。没有失去,对我来说也没有珍惜。希望从何来,算了,还是不要明白好了。"
  7. :start
  8. set /a n=%random%%%14+1,n2+=1
  9. if %over% equ %n% goto :start
  10. if "!str:~%n2%,1!" neq "" (
  11. >"!str:~%n2%,1!" set /p "= "<nul
  12. findstr /a:0!col:~%n%,1! .* "!str:~%n2%,1!*"
  13. ping /n 2 127.1>nul
  14. del !str:~%n2%,1!
  15. set "over=%n%"
  16. )&&goto :start
复制代码

评分

参与人数 1技术 +1 收起 理由
Hello123World + 1 犀利了,没看懂

查看全部评分

发表于 2011-10-6 16:25:10 | 显示全部楼层
回复 3# awk


    能否给解释下这个IF语句是怎么执行的?我实在不懂,这里面的!t!怎么也不会等于空啊,那为什么还可以执行下面的呢???
  1. :loop

  2. set t=!str:~%n%,1!

  3. if "!t!" neq "" (

  4.     set /p =!t!<nul

  5.     set /a n+=1

  6.     ping -n 2 127.1 >nul

  7.     goto :loop

  8. )
复制代码
发表于 2011-10-6 16:43:02 | 显示全部楼层
回复 8# zaixinxiangnian


取到最后一个字符之后,再次循环的时候,变量 t 的值就是空了。
发表于 2011-10-6 16:56:32 | 显示全部楼层
回复 9# awk
就是变量 t 的值就是空才执行IF语句的呀!t的值就是通过if 里面%n%一个一个的变化才那样显示的,那T的值在最后一个字符之前是怎么循环的呢?
发表于 2011-10-6 16:59:06 | 显示全部楼层
回复 10# zaixinxiangnian


neq表示“不等于”
发表于 2011-10-6 17:25:57 | 显示全部楼层
回复 11# awk


   谢谢awk的回答,明白了,把EQU和NEQ搞混乱了
发表于 2011-10-6 17:37:09 | 显示全部楼层
回复 1# nnnn111
  1. set "a=我 树 敌 无 数 却 从 来  帝  烧 掉 它"
  2. set a=%a: =%
  3. echo %a%
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:31 , Processed in 0.022815 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表