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

我也行!

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set a=0
  4. for /f "eol= tokens=1,2,3" %%a in ('type 1.txt') do (
  5. set /a a+=1
  6. set "lie1=%%a                                      "
  7. set lie1=!lie1:~0,30!
  8. set "lie2=%%b                                      "
  9. set lie2=!lie2:~0,20!
  10. echo,!lie1!!lie2:%%b=!%%b  %%c
  11. )
  12. pause
复制代码
1

评分人数

TOP

我稍微换一下思路,应该说是尽量的通用了……如果某文本太过畸形 那也是没办法的事了……
文本内容更新为:
  1. 111111111111111111111                                      98912 张三
  2. 222222222222222222    150020 李四四
  3.   333333333333333333333    360000 王五
  4. 4444444444444444444321542365445432453243243423432   11111143242342332 赵六六
  5.   555555555555555555    222 田七
  6. 666666666666666666666    999999                                   舞吧
复制代码
  1. @echo off
  2. mode con cols=100 lines=20
  3. setlocal enabledelayedexpansion
  4. for /l %%a in (1,1,80) do set kong= !kong!
  5. for /f "eol= tokens=1,2,3" %%a in ('type 1.txt') do (
  6. set lie1-2=%%a%%b%kong%
  7. set lie1-2=!lie1-2:~0,80!
  8. set lie1-2=%%a!lie1-2:%%a%%b=!%%b
  9. echo,!lie1-2!   %%c
  10. )
  11. pause
复制代码
原理:例如文本内容为:
ab******1*d
abc*************2********e
用for获得前面的两列
直接组合 则免去了中间的空格:
ab1
abc2
直接加上80个空格
ab1***************************……
abc2***************************……
然后保存前80位。
ab1*********……***
abc2********……***
把空格前移
ab*********……***1
abc********……***2
这样前面的就基本对齐了。后面的第三列 就不用说了…
我觉得应该可以了……至少我自己用不上太通用的,这个代码自己也没有当工具用过




忽忽……加了中文 或者字符……就被淘汰了……

[ 本帖最后由 523066680 于 2008-8-12 15:49 编辑 ]
2

评分人数

TOP

返回列表