[已解决]反向读取变量?
本帖最后由 DenQ 于 2010-10-26 18:29 编辑我有一个配置文件里面写了格式为:
00:E0:6F:03:C6:85 = 018
原本用意是,读取本机的MAC, 并在配置文件里面寻找对应的机器名.然后去机名前的0, 得到本机IP(末位吧!)
但现在, 在软件里面加了一个修改MAC的功能, 就是利用本机机器名, 在配置文件里面寻找对应的MAC地址, 并修改..
各位大帮忙,, 上次的忙很感谢,, 这次真是遇到大麻烦了.. 如何在不另外加配置文件的情况下.. 实现我说的功能... 本帖最后由 DenQ 于 2010-8-7 21:55 编辑
find "018" AutoIP.ini >AutoIP.tmp
for /f "skip=3 tokens=1" %%C in (AutoIP.tmp) do set Mac=%%C
echo %Mac%
用批处理, 处理过后。可以得到 正确的Mac 。 但不知道。如何用在 Au3 上面.. http://www.autoitx.com/search.php?searchid=246&orderby=lastpost&ascdesc=desc&searchsubmit=yes 因为没有完整的AutoIP.ini文件,只能猜。$i=1
While 1
$read=FileReadLine("AutoIP.ini",$i)
If @error Then
ExitLoop
Else
If StringInStr($read,'018') Then
MsgBox(0,0,StringRegExpReplace($read,'(.+)\=\h(\d{3})','$1'))
EndIf
EndIf
$i+=1
WEnd
回复 3# 水木子
我只是需要一个获取变量的问题。。 改MAC。 会了。 {:face (396):} 回复 4# 3mile
AutoIP.ini:
--- MAC地址 ---- 机器名 --
00:E0:6F:03:9C:8F = 001
00:E0:6F:03:C6:68 = 002
00:E0:6F:03:C6:69 = 003
00:E0:6F:03:9C:AD = 004
00:E0:6F:03:B8:BD = 005
00:E0:6F:03:81:4B = 006
差不多就是这种格式! 建议你去下载我在源码发的用INI做数据库,如果你能坚持看完源码,我相信你对INI文件的操作不会有什么问题了 回复 6# DenQ
4楼代码可用,第七行为查找的机器名。
方便楼主吧,做成自定义函数方便调用。
$name=005;需要查找的机器名
$mac=_findmac($name);获取MAC
MsgBox(0,0,$mac)
Func _findmac($name);根据机器名获取MAC的算定义函数
$i=1
While 1
$read=FileReadLine("AutoIP.ini",$i)
If @error Then
ExitLoop
Else
If StringInStr($read,$name) Then
Return StringRegExpReplace($read,'(.+)\=\h(\d{3})','$1')
EndIf
EndIf
$i+=1
WEnd
EndFunc
页:
[1]