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

批处理读取文本内容并逐字显示

[复制链接]
发表于 2010-8-9 22:53:52 | 显示全部楼层 |阅读模式
练习题:
存在一个test.txt文件,内容为: 希 望 论 坛 越 办 越 好
每隔300毫秒将test.txt的内容从左到右逐字横向显示
第一个for语句不能把 希 望 论 坛 越 办 越 好 直接放在 in ()里
用 for %%i  in () do 形式,for不加参数!

[ 本帖最后由 rogue_1983 于 2010-8-12 20:55 编辑 ]
发表于 2010-8-11 03:18:30 | 显示全部楼层
  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 编辑 ]
发表于 2010-8-11 10:49:27 | 显示全部楼层
en,学习一下,知道了

[ 本帖最后由 wuzexin 于 2010-8-11 11:53 编辑 ]
发表于 2010-8-11 13:58:27 | 显示全部楼层
  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
复制代码
发表于 2010-8-11 14:08:35 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2010-8-12 20:54:06 | 显示全部楼层

我的意思是这样!

  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 (希 望 论 坛 越 办 越 好) 里!
发表于 2010-8-19 16:29:56 | 显示全部楼层
有难度唉  不把那些字放那里又不带参数 不好搞啊
能讲一下么
发表于 2011-2-2 20:45:48 | 显示全部楼层
@echo off
for %%i in (希 望 论 坛 越 办 越 好) do set /p a=%%i<nul & ping  >nul 2>nul
pause
好像有点快
发表于 2011-3-19 09:24:48 | 显示全部楼层
谁能解释下第二个for语句的功能啊?请求详细点。
发表于 2011-4-20 23:24:37 | 显示全部楼层
呵呵 不带参数 的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
复制代码
发表于 2011-5-1 20:55:23 | 显示全部楼层
学习  老师们.........
发表于 2011-5-3 15:01:56 | 显示全部楼层
学习中 !~     
发表于 2013-2-27 22:11:34 | 显示全部楼层
  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
复制代码
只要在文件里面写入该文字就可以了
发表于 2013-5-28 09:31:52 | 显示全部楼层
回复 2# hfg1977


    请问一下哪里可以找到
ping/n 1 127.1>nul
的用法!一直不明白什么意思
发表于 2013-7-29 10:02:23 | 显示全部楼层
回复 15# qq399254368


    ping 是一个外部程序 批处理这里用来延时
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 03:10 , Processed in 0.021662 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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