[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

  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=我树敌无数却从来帝烧掉它"
怎么改代码

  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

评分人数

TOP

  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

评分人数

TOP

本帖最后由 小麦 于 2011-10-5 19:24 编辑

打发错了 下面才是 。

TOP

本帖最后由 小麦 于 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
复制代码
1

评分人数

TOP

  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

评分人数

TOP

本帖最后由 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

评分人数

枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 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. )
复制代码

TOP

回复 8# zaixinxiangnian


取到最后一个字符之后,再次循环的时候,变量 t 的值就是空了。

TOP

回复 9# awk
就是变量 t 的值就是空才执行IF语句的呀!t的值就是通过if 里面%n%一个一个的变化才那样显示的,那T的值在最后一个字符之前是怎么循环的呢?

TOP

回复 10# zaixinxiangnian


neq表示“不等于”

TOP

回复 11# awk


   谢谢awk的回答,明白了,把EQU和NEQ搞混乱了

TOP

回复 1# nnnn111
  1. set "a=我 树 敌 无 数 却 从 来  帝  烧 掉 它"
  2. set a=%a: =%
  3. echo %a%
复制代码

TOP

返回列表