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

[讨论]批处理排版输出

版输出
写了个没什么用的东西,对单双字节版输出。
将文档以"指定字符"为分割符,版输出。
效率不是很高,并且创建了两个临时文件。

:
  1. @echo off&setlocal enabledelayedexpansion
  2. cd.>tmp.txt&cd.>tmp1.txt
  3. ::变量 f 为指定字符
  4. set "f= "
  5. for /f "delims=" %%a in (a.txt) do (
  6.    call :loop "%%a"
  7.    (echo.>>tmp.txt)
  8. )
  9. for /l %%l in (1 1 20) do set /a _%%l=0
  10. set "var=^(type tmp.txt^&echo.^)^|findstr /o .*"
  11. for /f "tokens=1* delims=:" %%a in ('%var%') do (
  12.    if defined n (
  13.       set /a m=%%a-2-n,flag+=1
  14.       call set "lis=%%_!flag!%%"
  15.       if !m! neq 0 (
  16.           (>>tmp1.txt echo !m!:!name!.)
  17.           if !m! geq !lis! set "_!flag!=!m!"
  18.         ) else (
  19.           (echo.#>>tmp1.txt)
  20.           set /a flag=0
  21.     ))
  22.    set /a n=%%a&set "name=%%b"
  23. )
  24. set name=&set /a m=0
  25. for /f "tokens=1* delims=:" %%a in (tmp1.txt) do (
  26.    set flag=&set /a m+=1
  27.    call set "n=%%_!m!%%"
  28.    set /a n=n-%%a
  29.    for /l %%i in (1 1 !n!) do set "flag= !flag!"
  30.    set "n=%%b"
  31.    set "n=!n:~0,-1!!flag!"
  32.    if not "%%a"=="#" (set "name=!name! %f% !n!") else (
  33.       (echo !name:~3!)
  34.       set name=&set /a m=0
  35. )   )
  36. del/q tmp.txt tmp1.txt
  37. echo.&pause&exit
  38. :loop
  39. for /f "tokens=1* delims=%f%" %%i in ("%~1") do (
  40.    (>>tmp.txt echo %%i)
  41.    if not "%%j"=="" call :loop "%%j"
  42. )
  43. goto :eof
复制代码

[ 本帖最后由 随风 于 2008-5-14 09:53 编辑 ]
技术问题请到论坛发帖求助!

哇!要这么长的饿代码吗??

TOP

回复 2楼 的帖子

呵呵,
以空格为分隔符每行的段数不确定,且每段中都是中英文混合,fml520 兄若有简洁的代码,还请贴出来大家共享一下。  盼 !!
技术问题请到论坛发帖求助!

TOP

——————————永远大话西游!————————

TOP

返回列表