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

[文本处理] 批处理怎样批量统计所有IP段的IP总数并将数据输出?

[复制链接]
发表于 2011-7-2 00:13:52 | 显示全部楼层
楼主太不顾及别人的感觉了吧

一个贴子想把所有问题解决了?

另开一个贴子罗~~~~~~~~
 楼主| 发表于 2011-7-2 00:16:41 | 显示全部楼层
本帖最后由 wh1234567 于 2011-7-2 00:21 编辑

不好意思,就这个批处理,只是只能计算8位数的,10位数或更大的就不能计算出来,显示为0
发表于 2011-7-2 00:32:06 | 显示全部楼层
批处理能直接计算的最大值和最小值
http://bbs.bathome.net/thread-1145-1-1.html
发表于 2011-7-2 00:54:39 | 显示全部楼层
IP有10位数的?

好像都是0-255吧,最多也只有三位数啊?
 楼主| 发表于 2011-7-2 00:56:00 | 显示全部楼层
5# HAT


你好,你能不能帮我是不是需要修改一下代码?将多行结果相加(正确为4294967296)这么大的结果却计算不出来,显示为0,不知道是啥原因
 楼主| 发表于 2011-7-2 00:58:52 | 显示全部楼层
本帖最后由 wh1234567 于 2011-7-2 01:01 编辑

19# ArdentMan

10位数是指全部IP地址个数相加
发表于 2011-7-2 01:05:19 | 显示全部楼层
楼上最好给出例子,不然我是不明白你的意思
发表于 2011-7-2 02:30:03 | 显示全部楼层
方法1:调用VBS计算大数
方法2:调用命令行工具计算大数
方法3:自己编写函数计算大数
发表于 2011-7-2 11:16:45 | 显示全部楼层
本帖最后由 ArdentMan 于 2011-7-2 11:27 编辑

  1. Dim FSO, Arr1, Str1, Arr2, Str2, Arr3, Number, Total, Answer
  2. Dim Num(2)
  3. Set FSO = CreateObject("Scripting.FileSystemObject")
  4. Arr1 = Split(FSO.OpenTextFile("a.txt").ReadAll(), vbCrLf)
  5. For Each Str1 In Arr1
  6.   If Str1 <> vbNullString Then
  7.    Arr2 = Split(Str1, Space(1)) : i = -1
  8.    For Each Str2 In Arr2
  9.      i = i + 1
  10.      Arr3 = Split(Str2, ".")
  11.      Num(i) = Arr3(0) * 256 * 256 * 256 + Arr3(1) * 256 * 256 + Arr3(2) * 256 + Arr3(3)
  12.      Answer = Answer & Str2 & vbTab
  13.    Next
  14.    Number = Num(1) - Num(0) + 1
  15.    Total = Total + Number
  16.    Answer = Answer & "小计" & Number & "个" & vbCrLf
  17.   End If
  18. Next
  19. Answer = Answer & String(45, "-") & vbCrLf & "统计结果总数为:" & Total & "个"
  20. FSO.OpenTextFile ("a.txt", 2, True).Write Answer
  21. Set FSO = Nothing
  22. CreateObject("Wscript.Shell").Run("a.txt")
复制代码
发表于 2011-7-2 14:10:45 | 显示全部楼层
唉,拿来主义到这里完全变成了伸手主义。。。
 楼主| 发表于 2011-7-3 22:14:44 | 显示全部楼层
本帖最后由 wh1234567 于 2011-7-4 02:34 编辑

24# ArdentMan

有点看不懂,能不能解释一下如何使用?
发表于 2011-7-4 08:10:08 | 显示全部楼层
本帖最后由 ArdentMan 于 2011-7-4 08:26 编辑

26# wh1234567

偶的神,存为Jisuan.vbs再双击
发表于 2011-7-4 08:44:12 | 显示全部楼层
26# wh1234567

真让人蛋疼。。。
 楼主| 发表于 2011-7-6 04:41:15 | 显示全部楼层
本帖最后由 wh1234567 于 2011-7-6 04:46 编辑

27# ArdentMan
很感谢您的二次修改,这下可以正常处理了,我在你第一次写好代码后保存为VBS后不能正常执行提示错误,所以问你如何使用,呵呵呵,不好意思啊,论坛有你们这些高手网友,相信论坛一定越办越火!
哎呀不对,小数值计算没问题,但遇到大数值计算就又出现错误了

脚本:        D:\IP段计算.vbs
行:        11
字符:        6
错误:        下标越界: '[number: 0]'
代码:        800A0009
源:         Microsoft VBScript 运行时错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 17:23 , Processed in 0.019224 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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