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

[文本处理] [己解决]批处理将文本中每行按特定位置的数字从小到大排序

本帖最后由 pcl_test 于 2017-3-25 07:47 编辑

批处理对a.txt进行处理得出b.txt,求代码?谢谢!
主要是方便检查是否有重复IP。比如下面两个192.168.81.50,进行顺序排列容易排查出来进行手动更正。

a.txt内容如下:
user=2549   assign_ip=192.168.81.50   
user=2216   assign_ip=192.168.81.26   
user=2217   assign_ip=192.168.81.17   
user=2345   assign_ip=192.168.81.45   
user=2458   assign_ip=192.168.81.40   
user=2256   assign_ip=192.168.81.56   
user=2114   assign_ip=192.168.81.14   
user=2478   assign_ip=192.168.81.78   
user=2350   assign_ip=192.168.81.50   

b.txt内容如下:
user=2114   assign_ip=192.168.81.14
user=2217   assign_ip=192.168.81.17
user=2216   assign_ip=192.168.81.26
user=2458   assign_ip=192.168.81.40
user=2345   assign_ip=192.168.81.45
user=2549   assign_ip=192.168.81.50
user=2350   assign_ip=192.168.81.50  
user=2256   assign_ip=192.168.81.56
user=2478   assign_ip=192.168.81.78
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. %1(for /f "tokens=1*" %%a in ('"%~0" :^|sort') do echo,%%b)>b.txt&exit/b
  3. for /f "tokens=1-3delims==" %%a in (a.txt) do echo,%%c %%a=%%b=%%c
复制代码
1

评分人数

TOP

回复 2# apang


    谢谢,代码试过可以,但把a.txt文本内容更改如下格式就会出错,望解决?

user=2549   profile=vip4M   assign_ip=192.168.81.49   
user=2216   profile=vip8M   assign_ip=192.168.81.26   
user=2217   profile=vip4M   assign_ip=192.168.81.17   
user=2345   profile=vip4M   assign_ip=192.168.81.45   
user=2458   profile=vip8M   assign_ip=192.168.81.40   
user=2256   profile=vip4M   assign_ip=192.168.81.56   
user=2114   profile=vip4M   assign_ip=192.168.81.14

TOP

10年,多少懂点for吧,几分钟看下置顶贴for入门到精通。
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 4# xxpinqz

谢谢提醒,自己修改后OK了。
  1. @echo off
  2. %1(for /f "tokens=1*" %%a in ('"%~0" :^|sort') do echo,%%b)>>b.txt&exit/b
  3. for /f "tokens=1-4delims==" %%a in (a.txt) do echo,%%d %%a=%%b=%%c=%%d
复制代码

TOP

返回列表