找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 71029|回复: 16

[文本处理] [已解决]批处理将ip地址按数字大小排序

[复制链接]
发表于 2015-4-8 16:01:18 | 显示全部楼层 |阅读模式
本帖最后由 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
。。。。。。
用批处理如何写?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-4-8 16:16:15 | 显示全部楼层
本帖最后由 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"
复制代码

评分

参与人数 1技术 +1 收起 理由
wangdao6699 + 1 感谢分享

查看全部评分

 楼主| 发表于 2015-4-8 16:23:14 | 显示全部楼层
回复 2# pcl_test


    顺序排出来了,能否将结果放到一起?
发表于 2015-4-8 16:25:05 | 显示全部楼层
回复 3# wangdao6699
已修改
 楼主| 发表于 2015-4-8 16:29:41 | 显示全部楼层
回复 4# pcl_test


    还是没有放到一起
发表于 2015-4-8 16:36:10 | 显示全部楼层
把结果发上来看看
 楼主| 发表于 2015-4-8 16:38:12 | 显示全部楼层
回复 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
发表于 2015-4-8 16:39:37 | 显示全部楼层
你没用我2楼更改后的代码哦
 楼主| 发表于 2015-4-8 16:41:35 | 显示全部楼层
回复 8# pcl_test


    用了已修改代码,结果还是那样
发表于 2015-4-8 16:44:48 | 显示全部楼层
本帖最后由 pcl_test 于 2015-4-8 16:49 编辑

回复 9# wangdao6699

新建一个批处理文件,重新复制粘贴代码进去
效果演示http://pan.baidu.com/s/1o6kheFg
 楼主| 发表于 2015-4-8 16:52:56 | 显示全部楼层
回复 10# pcl_test


    现在好了,这究竟是怎么回事?太奇怪了
发表于 2015-4-8 17:00:06 | 显示全部楼层
问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
 楼主| 发表于 2015-4-8 17:03:31 | 显示全部楼层
回复 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地址组合
发表于 2015-4-8 17:26:37 | 显示全部楼层
回复 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"
复制代码

评分

参与人数 1技术 +1 收起 理由
wangdao6699 + 1 感谢分享

查看全部评分

发表于 2015-4-8 17:31:53 | 显示全部楼层

  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. )
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 07:51 , Processed in 0.035491 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表