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

[文本处理] [已解决]批处理将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
。。。。。。
用批处理如何写?
1

评分人数

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

本帖最后由 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

评分人数

TOP

回复 2# pcl_test


    顺序排出来了,能否将结果放到一起?

TOP

回复 3# wangdao6699
已修改

TOP

回复 4# pcl_test


    还是没有放到一起

TOP

把结果发上来看看

TOP

回复 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

TOP

你没用我2楼更改后的代码哦

TOP

回复 8# pcl_test


    用了已修改代码,结果还是那样

TOP

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

回复 9# wangdao6699

新建一个批处理文件,重新复制粘贴代码进去
效果演示http://pan.baidu.com/s/1o6kheFg

TOP

回复 10# pcl_test


    现在好了,这究竟是怎么回事?太奇怪了

TOP

问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html

TOP

回复 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地址组合

TOP

回复 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

评分人数

TOP

  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

评分人数

初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

返回列表