找回密码
 加入
搜索
查看: 1818|回复: 4

[系统综合] 已解决!自动替换TXT相应的字符并写入新的配置文件中!

[复制链接]
发表于 2011-1-10 21:49:55 | 显示全部楼层 |阅读模式
本帖最后由 zhenglei 于 2011-1-12 18:30 编辑

1.TXT内容:
Doing NBT name scan for addresses from 192.168.10.1/24

IP address       NetBIOS Name     Server    User             MAC address      
------------------------------------------------------------------------------
192.168.10.2    YJ002                     <unknown>        00-19-66-fc-49-9d
192.168.10.4     YJ004                      <unknown>        00-25-22-19-4d-5e
192.168.10.5     YJ005                      <unknown>        00-25-22-0a-46-51
192.168.10.7     YJ007                      <unknown>        00-25-22-09-87-2f

现要做修改一下 。。。 删除不用的字符。并重组写入2.ini中。
重新组合结果如下:  2.ini内容   不知脚本该如何写???????????
YJ002=192.168.10.2|00-19-66-fc-49-9d
YJ004 =192.168.10.4 | 00-25-22-19-4D-5E
YJ005 =192.168.10.5| 00-25-22-0A-46-51
YJ007=192.168.10.7| 00-25-22-09-87-2F

咱们的AU3虽然也可以扫描 LAN 但速度实在是不敢恭维。。。。。 现在用其他的工具扫描了。现在需要提取修改整合一下内容。。请老大们试试 看是否能实现我要的结果。。。。。
发表于 2011-1-11 00:14:46 | 显示全部楼层


#include <File.au3>
Dim $aFile[1], $sLine, $sName, $sIP, $sMAC
_FileReadToArray("1.txt", $aFile)

For $i = 5 To $aFile[0];数据从第五行开始的
        $sLine = $aFile[$i]
        $regTemp = StringRegExp($sLine, "YJ\d+", 3);用正则取机器名
        $sName = $regTemp[0]
        $regTemp = StringRegExp($sLine, "192\.168\.\d{1,3}\.\d{1,3}", 3);取ip(简陋了点....)
        $sIP = $regTemp[0]
        $regTemp = StringRegExp($sLine, "[a-f\d]{2}-[a-f\d]{2}-[a-f\d]{2}-[a-f\d]{2}-[a-f\d]{2}-[a-f\d]{2}", 3);取mac
        $sMAC = $regTemp[0]
        IniWrite("2.ini", "scan", $sName, $sIP & "|" & $sMAC);写入Ini
Next
 楼主| 发表于 2011-1-11 11:56:40 | 显示全部楼层
本帖最后由 zhenglei 于 2011-1-11 12:19 编辑

很牛X。。我就是不会用正规表达式。。郁闷死。。。。

老大的表达式很简短也很方便。。 但有一个弊端。。。

比如1。TXT中包含以下2条计算机名  则老大的代码就无法正确提取了。。。郁闷啊。。。。 有没办法将您的代码在修改以下。。。。。????
192.168.10.231   MUSIC                      <unknown>        00-18-f3-fe-c2-c6
192.168.10.252   NET-DISK                   <unknown>        00-1c-c0-93-8c-a1
发表于 2011-1-11 13:19:05 | 显示全部楼层
囧 用正则的意图就是让你可以调整啊 我知道不可能所有的机器都叫 YJxxx的嘛  
$regTemp = StringRegExp($sLine, "(YJ\d+)|MUSIC|NET-DISK", 3)
 楼主| 发表于 2011-1-12 18:29:40 | 显示全部楼层
我已经搞定。。谢谢老大。。 正规表达式很叼。。 还缺乏联系。。嘿嘿。。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 16:27 , Processed in 0.079155 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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