PC可直接运行的VBS脚本之替换脚本本身内容

脚本功能:将input函数的默认IP,替换为最后一次手动输入的IP,并保存到该运行脚本文件中

Dim patrn1,patrn2,patrn3
patrn1 = "(\S)+\.(\S)+\.(\S)+\.(\S)+"
patrn2 = "(\d)+\.(\d)+\.(\d)+\.(\d)+"
patrn3 = "\bipdefault(\s)+(\S)+(\s)+(\S)+(\d)+\.(\d)+\.(\d)+\.(\d)+"

Dim FileName, Find, ReplaceWith, FileContents, dFileContents
Dim ipinput,ipdefault
Set objShell = CreateObject("Wscript.Shell")
pathscript = Wscript.ScriptFullName
FileName = pathscript
ipdefault = "1.1.1.1"
ipinput = inputbox ("input ip address pls",,ipdefault)
if checkipformat(ipinput) = false then
    ipinput = "1.1.1.1"
    else 
end if
newcontents = "ipdefault = " & Chr(34) & ipinput
'读取文件
FileContents = GetFile(FileName)
'替换IP
dFileContents = ReplaceTest(FileContents,patrn3,newcontents)

'比较源文件和替换后的文件   
if dFileContents <> FileContents Then   
    '保存替换后的文件   
    WriteFile FileName, dFileContents   
    Wscript.Echo "Replace done." 
end if    

'函数:读取文件   
function GetFile(FileName)   
    If FileName<>"" Then   
        Dim FS, FileStream   
        Set FS = CreateObject("Scripting.FileSystemObject")   
        on error resume Next   
        Set FileStream = FS.OpenTextFile(FileName)   
        GetFile = FileStream.ReadAll
    End If   
End Function   

'函数:写文件   
function WriteFile(FileName, Contents)   
    Dim OutStream, FS   
    on error resume Next   
    Set FS = CreateObject("Scripting.FileSystemObject")   
    Set OutStream = FS.OpenTextFile(FileName, 2, True)   
    OutStream.Write Contents
End Function

'将str1种匹配patrn的内容替换为str2
Function ReplaceTest(str1,patrn,str2)
    Dim regEx                           ' 建立变量。
    Set regEx = New RegExp              ' 建立正则表达式。
    regEx.Pattern = patrn               ' 设置模式。
    regEx.IgnoreCase = True             ' 设置是否区分大小写。
    ReplaceTest = regEx.Replace(str1, str2)         ' 作替换。
End Function

'检查ipinput

Function checkipformat(s)
dim re
set re = new RegExp
re.pattern = "(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})+"
re.ignoreCase = false '忽略大小写
re.Global = false '非全局匹配
checkipformat = re.test(s) '返回Boolean值,匹配为True,不匹配为False
End Function

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值