12407470 发表于 2016-11-19 11:22:09

求助!关于修改hosts文件内容的问题

如果hosts文件内不存在172.19.2.6s508295和172.17.37.97s508295这两个IP,就添加172.17.37.97s508295,如果存在172.17.37.97s508295就跳过,如果存在172.19.2.6s508295就修改为172.17.37.97s508295。现在调试的时候hosts文件里存在172.19.2.6s508295就是改不过来,请教如果更改脚本?


$hostFile = @SystemDir & "\drivers\etc\hosts"
$a=FileGetAttrib($hostFile)
FileSetAttrib($hostFile,"-RSAH")


Run("notepad C:\Windows\System32\drivers\etc\hosts")
WinWait("hosts - 记事本","")
WinActivate("hosts - 记事本","")
$b=ControlGetText("hosts - 记事本","","Edit1");$b=获取hosts文件内容
$c=StringInStr($b,"172.19.2.6");$c=检查变量b里是否包含此IP
$e=StringInStr($b,"172.17.37.97");e=检查变量b里是否包含此IP
If $e<>0 Then ;如果存在172.17.37.97那么
        WinClose("hosts - 记事本","");关闭窗口

ElseIf $c=0 and $e=0 Then;如果两个ip不存在那么
        FileWriteLine($hostFile,@CRLF & "172.17.37.97s508295" & @CRLF);另起一行添加该IP到最后

ElseIf $c<>0 Then ;如果存在172.17.2.6那么
        $d=StringReplace($b,$c,"172.17.37.97s508295");将原IP替换为现IP
        ControlSetText("hosts - 记事本","","Edit1",$d);将替换后的hosts文件内所有内容写入hosts文件
EndIf

WinClose("hosts - 记事本","");关闭窗口

haijie1223 发表于 2016-11-19 13:29:47

fileopen
fileread
fileclose

12407470 发表于 2016-11-21 10:55:44

回复 2# haijie1223


FileOpen("C:\Windows\System32\drivers\etc\hosts")
   使用fileopen打不开hosts文件啊
页: [1]
查看完整版本: 求助!关于修改hosts文件内容的问题