Board logo

标题: 批处理读取文本内容并逐字显示 [打印本页]

作者: rogue_1983    时间: 2010-8-9 22:53     标题: 批处理读取文本内容并逐字显示

练习题:
存在一个test.txt文件,内容为: 希 望 论 坛 越 办 越 好
每隔300毫秒将test.txt的内容从左到右逐字横向显示
第一个for语句不能把 希 望 论 坛 越 办 越 好 直接放在 in ()里
用 for %%i  in () do 形式,for不加参数!

[ 本帖最后由 rogue_1983 于 2010-8-12 20:55 编辑 ]
作者: hfg1977    时间: 2010-8-11 03:18

  1. @echo off&setlocal enabledelayedexpansion&cls
  2. set "str= 希 望 论 坛 越 办 越 好"
  3. for %%i in (2,4,6,8,10,12,14,16) do (
  4. ping/n 1 127.1>nul
  5. set/p =!str:~0,%%i!<nul
  6. )
  7. pause
复制代码

[ 本帖最后由 hfg1977 于 2010-8-11 03:21 编辑 ]
作者: wuzexin    时间: 2010-8-11 10:49

en,学习一下,知道了

[ 本帖最后由 wuzexin 于 2010-8-11 11:53 编辑 ]
作者: solid    时间: 2010-8-11 13:58

  1. @echo off &setlocal enabledelayedexpansion
  2. for %%a in ( 希 望 论 坛 越 办 越 好 ) do (
  3. set "ko= !ko!"
  4. echo !ko!%%a
  5. ping 127.1 >nul
  6. cls
  7. )
  8. pause
复制代码

作者: solid    时间: 2010-8-11 14:08

  1. @echo off &setlocal enabledelayedexpansion
  2. for %%a in ( 希 望 论 坛 越 办 越 好 ) do (
  3. set a=%%a
  4. set b=!b! !a!
  5. echo !b!
  6. ping 127.1 -n 2 >nul
  7. cls
  8. )
  9. pause
复制代码

作者: rogue_1983    时间: 2010-8-12 20:54     标题: 我的意思是这样!

  1. test.txt 内容为:希 望 论 坛 越 办 越 好
复制代码
  1. @echo off
  2.     setlocal enabledelayedexpansion
  3.     for %%i in (test.txt) do (
  4.     set/p a=<%%i
  5.     for /l %%j in (0 1 14) do (set/p=!!a:~%%j,1!! <nul&ping /n 1 127.1>nul)
  6.     )
  7.     pause
复制代码
不要把:希 望 论 坛 越 办 越 好    直接用在 in (希 望 论 坛 越 办 越 好) 里!
作者: paladinjin    时间: 2010-8-19 16:29

有难度唉  不把那些字放那里又不带参数 不好搞啊
能讲一下么
作者: we6540    时间: 2011-2-2 20:45

@echo off
for %%i in (希 望 论 坛 越 办 越 好) do set /p a=%%i<nul & ping  >nul 2>nul
pause
好像有点快
作者: superbat    时间: 2011-3-19 09:24

谁能解释下第二个for语句的功能啊?请求详细点。
作者: dosbat    时间: 2011-4-20 23:24

呵呵 不带参数 的for语句来实现这个功能 有点难度
我用了一个参数
代码如下:
  1. @echo off&color 0a
  2. setlocal enabledelayedexpansion
  3. echo 希 望 论 坛 越 办 越 好>%temp%\text.txt     :偷懒直接这样生成txt文本
  4. for /f "delims=" %%i in ('type %temp%\text.txt') do (
  5. set str=%%i
  6. for %%i in (!str!) do (
  7. set /p=%%i<nul    ::不换行地输出
  8. call :delay 300     ::延时300毫秒
  9. )
  10. )
  11. ::后期处理
  12. if exist %temp%\delay.vbs del %temp%\delay.vbs
  13. goto exit
  14. :delay
  15. echo wscript.sleep(%1)>%temp%\delay.vbs  ::生成延时的VBS脚本
  16. goto :eof               ::相当于C语言等一些高级语言的return语句
  17. :exit
  18. echo.
  19. pause&exit
复制代码

作者: mqy62026    时间: 2011-5-1 20:55

学习  老师们.........
作者: mstsc    时间: 2011-5-3 15:01

学习中 !~     
作者: bat若好    时间: 2013-2-27 22:11

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo 请把文件和这批处理同一目录下
  4. set /p a=请输入文件名:
  5. for /f %%i in (%a%.txt) do (
  6.     set e=%%i
  7.     for /l %%b in (0,1,10000) do (
  8.         if "!e:~%%b,1!" neq "" (
  9.            set /p c=!e:~%%b,1!<nul
  10.            for /l %%d in (0,1,500) do (
  11.                echo %%d>nul
  12.             )
  13.          )
  14.      )
  15. )
  16. pause>nul
复制代码
只要在文件里面写入该文字就可以了
作者: qq399254368    时间: 2013-5-28 09:31

回复 2# hfg1977


    请问一下哪里可以找到
ping/n 1 127.1>nul
的用法!一直不明白什么意思
作者: 狱渊    时间: 2013-7-29 10:02

回复 15# qq399254368


    ping 是一个外部程序 批处理这里用来延时




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2