返回列表 发帖

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

批处理咋样批量统计txt文本里所有IP段的IP总数并将数据输出?

例如文本1里有:
192.168.1.0 192.168.1.255
222.12.0.0 222.12.255.255
......

处理后并输出的文本2例如:

192.168.1.0 192.168.1.255    小计256个
222.12.0.0 222.12.255.255    小计65536个
......
------------------------------------------------
统计结果总数为:65792个

本帖最后由 wh1234567 于 2011-7-6 04:46 编辑

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

脚本:        D:\IP段计算.vbs
行:        11
字符:        6
错误:        下标越界: '[number: 0]'
代码:        800A0009
源:         Microsoft VBScript 运行时错误

TOP

26# wh1234567

真让人蛋疼。。。
***共同提高***

TOP

本帖最后由 ArdentMan 于 2011-7-4 08:26 编辑

26# wh1234567

偶的神,存为Jisuan.vbs再双击
一路飘过的鸟~~~

TOP

本帖最后由 wh1234567 于 2011-7-4 02:34 编辑

24# ArdentMan

有点看不懂,能不能解释一下如何使用?

TOP

唉,拿来主义到这里完全变成了伸手主义。。。
***共同提高***

TOP

本帖最后由 ArdentMan 于 2011-7-2 11:27 编辑
Dim FSO, Arr1, Str1, Arr2, Str2, Arr3, Number, Total, Answer
Dim Num(2)
Set FSO = CreateObject("Scripting.FileSystemObject")
Arr1 = Split(FSO.OpenTextFile("a.txt").ReadAll(), vbCrLf)
For Each Str1 In Arr1
  If Str1 <> vbNullString Then
   Arr2 = Split(Str1, Space(1)) : i = -1
   For Each Str2 In Arr2
     i = i + 1
     Arr3 = Split(Str2, ".")
     Num(i) = Arr3(0) * 256 * 256 * 256 + Arr3(1) * 256 * 256 + Arr3(2) * 256 + Arr3(3)
     Answer = Answer & Str2 & vbTab
   Next
   Number = Num(1) - Num(0) + 1
   Total = Total + Number
   Answer = Answer & "小计" & Number & "个" & vbCrLf
  End If
Next
Answer = Answer & String(45, "-") & vbCrLf & "统计结果总数为:" & Total & "个"
FSO.OpenTextFile ("a.txt", 2, True).Write Answer
Set FSO = Nothing
CreateObject("Wscript.Shell").Run("a.txt")COPY
一路飘过的鸟~~~

TOP

方法1:调用VBS计算大数
方法2:调用命令行工具计算大数
方法3:自己编写函数计算大数

TOP

楼上最好给出例子,不然我是不明白你的意思
一路飘过的鸟~~~

TOP

本帖最后由 wh1234567 于 2011-7-2 01:01 编辑

19# ArdentMan

10位数是指全部IP地址个数相加

TOP

5# HAT


你好,你能不能帮我是不是需要修改一下代码?将多行结果相加(正确为4294967296)这么大的结果却计算不出来,显示为0,不知道是啥原因

TOP

IP有10位数的?

好像都是0-255吧,最多也只有三位数啊?
一路飘过的鸟~~~

TOP

批处理能直接计算的最大值和最小值
http://bbs.bathome.net/thread-1145-1-1.html

TOP

本帖最后由 wh1234567 于 2011-7-2 00:21 编辑

不好意思,就这个批处理,只是只能计算8位数的,10位数或更大的就不能计算出来,显示为0

TOP

楼主太不顾及别人的感觉了吧

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

另开一个贴子罗~~~~~~~~
一路飘过的鸟~~~

TOP

返回列表