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

[文本处理] 批处理如何逐字显示,但是排版要看起来和原来一样?

[复制链接]
发表于 2013-1-5 18:54:53 | 显示全部楼层 |阅读模式
  1. @echo off
  2. color 0a
  3. setlocal enabledelayedexpansion
  4. echo 需要把文档放在和这个程序同一个目录下
  5. set /p n=请输入文档名称:
  6. for /f %%i in (%n%.txt) do (
  7.   set e=%%i
  8.   for /l %%a in (0,1,10000) do (
  9.     if "!e:~%%a,1!" neq "" (
  10.        set /p c=!e:~%%a,1!<nul
  11.        rem 下面的命令是控制播放速度的,例如500,就相当于在多看之间加了500个空的输出。这电脑运行是要时间的。
  12.        for /l %%b in (1,1,500) do echo>nul
  13.     )
  14.   )

  15. )
  16. pause>nul
复制代码
逐字显示我已经能实现
就差显示文档里面的格式了,比如段落,空格......这样看起来比较好
发表于 2013-1-5 19:52:41 | 显示全部楼层
请将要阅读的文本拖放到批上:

  1. @echo off
  2. if "%~1" equ "" exit
  3. for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%~1"') do (
  4.   set "str=%%b"
  5.   setlocal enabledelayedexpansion
  6.   if defined str (
  7.     call :lp
  8.     ) else (
  9.     echo,
  10.   )
  11.   for /l %%a in (1,1,1000) do echo,>nul
  12.   endlocal
  13. )
  14. pause>nul&exit
  15. :lp
  16. set /p= !str:~,1!<nul
  17. set "str=!str:~1!"
  18. for /l %%a in (1,1,500) do echo,>nul
  19. if defined str goto lp
  20. echo,
复制代码
 楼主| 发表于 2013-1-5 20:02:04 | 显示全部楼层
回复 2# batman


    怎么会一闪过就没了,可以给完整的代码我看看嘛?
发表于 2013-1-5 20:13:35 | 显示全部楼层
请将要阅读的文本拖放到批上:
batman 发表于 2013-1-5 19:52



    楼主难道看不到第一行的文字?
发表于 2013-1-6 00:23:59 | 显示全部楼层
本帖最后由 terse 于 2013-1-6 16:10 编辑

版主遗漏行首冒号问题

不CALL它
先不用了

  1. ......................
复制代码
 楼主| 发表于 2013-1-6 14:58:51 | 显示全部楼层
回复 5# terse


    用你和版主的都实现不了我要的效果,我在这再说一次我的目的:我要的是在批处理弹出的窗口中,把我要读的文章内容一个个字的显示,但是显示文章效果的版面要和我放在文档里面的一样,就是该有空格的有空格,哪里分段的还是显示分段。这种效果能做出来吗?能的请附上完整的代码,谢谢。
发表于 2013-1-6 16:09:25 | 显示全部楼层
承认我的理解错误 暂把代码删了 以免误导
但你说的一个个字显示是怎么显示 难道上面代码是一屏一屏显示吗
 楼主| 发表于 2013-1-6 16:13:13 | 显示全部楼层
回复 7# terse


    我的代码已经可以实现一个个字显示文章内容了,就差要实现我最想要的效果了
发表于 2013-1-6 19:27:00 | 显示全部楼层
确实理解不了你要的效果,我的代码能原样逐字逐行输出文档原版面内容,难道还不是你要的?
发表于 2013-1-6 22:21:47 | 显示全部楼层
额,batman的代码肿么这样
发表于 2013-1-6 22:23:30 | 显示全部楼层
其他却OK?
发表于 2013-1-6 23:29:13 | 显示全部楼层
额,batman的代码肿么这样测试txt:
ht河豚 发表于 2013-1-6 22:21

编码问题
发表于 2013-1-6 23:50:57 | 显示全部楼层
本帖最后由 terse 于 2013-1-6 23:53 编辑

处理下编码问题
请将要阅读的文本拖放到P 和先前代码一样  效果可能不是楼主要的
默认显示代码本身
如要输入功能 去掉第三行行首::
  1. @echo off
  2. if "%~1" equ "" (set "F=%~s0") else set "F=%~1"
  3. ::set /p F=请输入文档名称:                             
  4. for /f "delims=" %%a in ('cmd /a /c type "%F%"^|findstr /n .*') do (
  5.     set "s=%%a"
  6.     setlocal enabledelayedexpansion
  7.     set "s=:!s:*:=!"
  8.     set Ln=0&set "Sn=!s!"
  9.     for %%i in (1024 512 256 128 64 32 16 8 4 2 1)do if "!Sn:~%%i!" neq "" set/aLn+=%%i&set "Sn=!Sn:~%%i!"
  10.         for /l %%i in (1 1 !Ln!) do (
  11.             set /p= !s:~%%i,1!<nul
  12.             for /l %%a in (1,1,500) do ver>nul
  13.         )
  14.          echo;&endlocal
  15. )
  16. pause
复制代码
发表于 2013-1-7 10:20:07 | 显示全部楼层
回复 10# ht河豚


    因为这个文件是unicode编码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 22:58 , Processed in 0.020302 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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