Board logo

标题: [文本处理] [已解决]批处理将ip地址按数字大小排序 [打印本页]

作者: wangdao6699    时间: 2015-4-8 16:01     标题: [已解决]批处理将ip地址按数字大小排序

本帖最后由 pcl_test 于 2016-7-12 15:54 编辑

记事本有一组IP地址:
225.224.100.16
192.168.1.106
136.1.68.38
256.1.68.38
10.18.6.89
12.168.50.76
。。。。。。
输出结果:

10.18.6.89
12.168.50.76
136.1.68.38
192.168.1.106
225.224.100.16
256.1.68.38
。。。。。。
用批处理如何写?
作者: pcl_test    时间: 2015-4-8 16:16

本帖最后由 pcl_test 于 2015-4-8 16:24 编辑
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1-4 delims=." %%a in ('type "a.txt"') do set "n=00%%a" & set _!n:~-3!=%%a.%%b.%%c.%%d
  3. (for /f "tokens=2 delims==" %%b in ('set _') do echo,%%b)>"b.txt"
复制代码

作者: wangdao6699    时间: 2015-4-8 16:23

回复 2# pcl_test


    顺序排出来了,能否将结果放到一起?
作者: pcl_test    时间: 2015-4-8 16:25

回复 3# wangdao6699
已修改
作者: wangdao6699    时间: 2015-4-8 16:29

回复 4# pcl_test


    还是没有放到一起
作者: pcl_test    时间: 2015-4-8 16:36

把结果发上来看看
作者: wangdao6699    时间: 2015-4-8 16:38

回复 2# pcl_test


结果:

D:\00>echo,10.18.6.89
10.18.6.89

D:\00>echo,12.168.50.76
12.168.50.76

D:\00>echo,136.1.68.38
136.1.68.38

D:\00>echo,192.168.1.106
192.168.1.106

D:\00>echo,225.224.100.16
225.224.100.16

D:\00>echo,256.1.68.38
256.1.68.38
作者: pcl_test    时间: 2015-4-8 16:39

你没用我2楼更改后的代码哦
作者: wangdao6699    时间: 2015-4-8 16:41

回复 8# pcl_test


    用了已修改代码,结果还是那样
作者: pcl_test    时间: 2015-4-8 16:44

本帖最后由 pcl_test 于 2015-4-8 16:49 编辑

回复 9# wangdao6699

新建一个批处理文件,重新复制粘贴代码进去
效果演示http://pan.baidu.com/s/1o6kheFg
作者: wangdao6699    时间: 2015-4-8 16:52

回复 10# pcl_test


    现在好了,这究竟是怎么回事?太奇怪了
作者: pcl_test    时间: 2015-4-8 17:00

问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
作者: wangdao6699    时间: 2015-4-8 17:03

回复 12# pcl_test


    刚才测试了,一组
225.224.100.16
225.224.100.106
225.224.100.38
225.224.100.2
225.224.100.89
225.224.100.76
结果显示:只显示:225.224.100.76
假如写一个通用代码那就更完美了
即能应付不同的IP地址组合
作者: pcl_test    时间: 2015-4-8 17:26

回复 13# wangdao6699
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1-4 delims=." %%a in ('type "a.txt"') do (
  3. set "a=00%%a" & set "a=!a:~-3!"
  4. set "b=00%%b" & set "b=!b:~-3!"
  5. set "c=00%%c" & set "c=!c:~-3!"
  6. set "d=00%%d" & set "d=!d:~-3!"
  7. set "_!a!!b!!c!!d!=%%a.%%b.%%c.%%d"
  8. )
  9. (for /f "tokens=2 delims==" %%b in ('set _') do echo,%%b)>"b.txt"
复制代码

作者: xxpinqz    时间: 2015-4-8 17:31

  1. @echo off & setlocal enabledelayedexpansion
  2. %1(for /f "tokens=2" %%a in ('%~0 :^|sort') do echo,%%a)>b.txt&exit /b
  3. for /f "tokens=1-4 delims=." %%a in (a.txt) do (
  4.      set/a #1=1000+%%a,#2=1000+%%b,#3=1000+%%c,#4=1000+%%d
  5.      echo,!#1!!#2!!#3!!#4! %%a.%%b.%%c.%%d
  6. )
复制代码

作者: wangdao6699    时间: 2015-4-8 17:35

回复 14# pcl_test


    你太牛了,测试了几组,完美解决,非常感谢您
作者: wangdao6699    时间: 2015-4-8 17:55

回复 15# xxpinqz


    高手,佩服。。。。。。




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