返回列表 发帖

我也行!

@echo off
setlocal enabledelayedexpansion
set a=0
for /f "eol= tokens=1,2,3" %%a in ('type 1.txt') do (
set /a a+=1
set "lie1=%%a                                      "
set lie1=!lie1:~0,30!
set "lie2=%%b                                      "
set lie2=!lie2:~0,20!
echo,!lie1!!lie2:%%b=!%%b  %%c
)
pauseCOPY
1

评分人数

[url=][/url]

TOP

我稍微换一下思路,应该说是尽量的通用了……如果某文本太过畸形 那也是没办法的事了……
文本内容更新为:
111111111111111111111                                      98912 张三
222222222222222222    150020 李四四
  333333333333333333333    360000 王五
4444444444444444444321542365445432453243243423432   11111143242342332 赵六六
  555555555555555555    222 田七
666666666666666666666    999999                                   舞吧COPY
@echo off
mode con cols=100 lines=20
setlocal enabledelayedexpansion
for /l %%a in (1,1,80) do set kong= !kong!
for /f "eol= tokens=1,2,3" %%a in ('type 1.txt') do (
set lie1-2=%%a%%b%kong%
set lie1-2=!lie1-2:~0,80!
set lie1-2=%%a!lie1-2:%%a%%b=!%%b
echo,!lie1-2!   %%c
)
pauseCOPY
原理:例如文本内容为:
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

评分人数

[url=][/url]

TOP

返回列表