Board logo

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

作者: bat爱好者    时间: 2013-1-5 18:54     标题: 批处理如何逐字显示,但是排版要看起来和原来一样?

  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
复制代码
逐字显示我已经能实现
就差显示文档里面的格式了,比如段落,空格......这样看起来比较好
作者: batman    时间: 2013-1-5 19:52

请将要阅读的文本拖放到批上:
  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,
复制代码

作者: bat爱好者    时间: 2013-1-5 20:02

回复 2# batman


    怎么会一闪过就没了,可以给完整的代码我看看嘛?
作者: batman    时间: 2013-1-5 20:13

请将要阅读的文本拖放到批上:
batman 发表于 2013-1-5 19:52



    楼主难道看不到第一行的文字?
作者: terse    时间: 2013-1-6 00:23

本帖最后由 terse 于 2013-1-6 16:10 编辑

版主遗漏行首冒号问题

不CALL它
先不用了
  1. ......................
复制代码

作者: bat爱好者    时间: 2013-1-6 14:58

回复 5# terse


    用你和版主的都实现不了我要的效果,我在这再说一次我的目的:我要的是在批处理弹出的窗口中,把我要读的文章内容一个个字的显示,但是显示文章效果的版面要和我放在文档里面的一样,就是该有空格的有空格,哪里分段的还是显示分段。这种效果能做出来吗?能的请附上完整的代码,谢谢。
作者: terse    时间: 2013-1-6 16:09

承认我的理解错误 暂把代码删了 以免误导
但你说的一个个字显示是怎么显示 难道上面代码是一屏一屏显示吗
作者: bat爱好者    时间: 2013-1-6 16:13

回复 7# terse


    我的代码已经可以实现一个个字显示文章内容了,就差要实现我最想要的效果了
作者: batman    时间: 2013-1-6 19:27

确实理解不了你要的效果,我的代码能原样逐字逐行输出文档原版面内容,难道还不是你要的?
作者: ht河豚    时间: 2013-1-6 22:21

额,batman的代码肿么这样
作者: ht河豚    时间: 2013-1-6 22:23

其他却OK?
作者: terse    时间: 2013-1-6 23:29

额,batman的代码肿么这样测试txt:
ht河豚 发表于 2013-1-6 22:21

编码问题
作者: terse    时间: 2013-1-6 23:50

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

作者: BAT-VBS    时间: 2013-1-7 10:20

回复 10# ht河豚


    因为这个文件是unicode编码




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