Warning: Undefined variable $self_hreflang in /www/wwwroot/www.che0.com/wp-content/themes/huaxia/functions.php on line 2130

Warning: Undefined variable $self_hreflang in /www/wwwroot/www.che0.com/wp-content/themes/huaxia/functions.php on line 2130

Warning: Undefined variable $self_hreflang in /www/wwwroot/www.che0.com/wp-content/themes/huaxia/functions.php on line 2154
Content

使用VBS实现Hosts文件一键配置实现代码(vbs调用vba函数)怎么可以错过

文章摘要

HostHelper 是一个 Host 文件配置工具,支持读取 Host 文件地址、IP 地址、主机名和写入策略。它能够根据输入参数处理 Host 文件内容,支持两种写入策略:覆盖(覆盖已存在的主机名对应的 IP 地址)和追加(在文件末尾添加新的 IP-主机名记录)。工具还包含参数错误检查和写入策略无效的提示功能,确保配置过程的稳定性和准确性。通过 HostHelper,用户可以高效地管理服务器主机信息的配置。

 ”””””””””””””””””””””””””””””””””””””””””” ‘ HostHelper Hosts文件配置工具 ‘ 作者:Tsybius2014 ‘ 时间:2015年10月20日 ‘ 描述:HostHelper 是一个Host文件配置工具,输入为Host文件地址、IP地址、域名 ”””””””””””””””””””””””””””””””””””””””””” ‘强制显式声明模块中的所有变量 Option Explicit ‘读取参数 Dim strHostAddr ‘Host文件地址 Dim strIpAddr ‘IP地址 Dim strName ‘主机名 Dim strOper ‘操作类型 cover:写入 append:追加 If WScript.Arguments.Count <> 4 Then WScript.Echo “参数错误” WScript.Quit Else ‘读入参数 strHostAddr=WScript.Arguments(0) ‘参数1:Host文件地址 strIpAddr=WScript.Arguments(1) ‘参数2:IP地址 strName=WScript.Arguments(2) ‘参数3:主机名 strOper=WScript.Arguments(3) ‘参数4:写入策略 cover:覆盖 append:追加 ‘覆盖:排他性加入 ‘追加:在文件末尾添加IP地址与主机名对应关系 ‘判断写入策略 Dim strOperName If strOper=”cover” Then strOperName=”覆盖” ElseIf strOper=”append” Then strOperName=”追加” Else WScript.Echo “非法的写入策略!” WScript.Quit End If ‘展示输入信息 WScript.Echo “Host文件地址:” & strHostAddr WScript.Echo “IP地址:” & strIpAddr WScript.Echo “主机名:” & strName WScript.Echo “写入策略:” & strOperName WScript.Echo “” End If Dim FSO Set FSO=CreateObject(“Scripting.FileSystemObject”) Const ForReading=1, ForWriting=2, ForAppending=8 ‘遍历Host文件,判断是否已有指定的Host值 Dim file Set file=FSO.OpenTextFile(strHostAddr) Dim strLine Dim bHostAlreadyExist bHostAlreadyExist=False Do While file.AtEndOfStream <> True strLine=LTrim(file.ReadLine) If Not Left(strLine, 1)=”#” Then Dim Array Array=Split(strLine, ” “, -1, 1) If UBound(Array) >=1 Then ‘IP一样且域名一样,则认为要配置的Host已存在 If Array(0)=strIpAddr And Array(1)=strName Then bHostAlreadyExist=True Exit Do End If Else End If ‘WScript.Echo strLine Else End If Loop file.Close If bHostAlreadyExist Then WScript.Echo “您要配置的Host已存在!” WScript.Quit End If ‘将IP地址与域名的对应关系写入到Host If strOper=”cover” Then ‘写入策略:覆盖 Dim fileRead Set fileRead=FSO.OpenTextFile(strHostAddr) Dim strContent strContent=fileRead.ReadAll() fileRead.Close Dim ArrayLine ArrayLine=Split(strContent, vbCrlf, -1, 1) Dim i Dim strArrayEachLine For i=0 To UBound(ArrayLine) ArrayLine(i)=Trim(ArrayLine(i)) If Not Left(ArrayLine(i), 1)=”#” Then strArrayEachLine=Split(ArrayLine(i), ” “, -1, 1) If UBound(strArrayEachLine) >=1 Then If strArrayEachLine(1)=strName Then ArrayLine(i)=”#” & ArrayLine(i) End If End If End If Next strContent=Join(ArrayLine, vbCrlf) strContent=strContent & vbCrlf & strIpAddr & ” ” & strName Dim fileCover Set fileCover=FSO.OpenTextFile(strHostAddr, ForWriting, False) fileCover.Write strContent fileCover.Close WScript.Echo “覆盖完毕” ElseIf strOper=”append” Then ‘写入策略:追加 Dim fileAppend Set fileAppend=FSO.OpenTextFile(strHostAddr, ForAppending, False) fileAppend.WriteLine fileAppend.WriteLine strIpAddr & ” ” & strName WScript.Echo “追加完毕” fileAppend.Close End If