首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用vbscript检查重复的文本名称并将其替换为新值?

如何使用vbscript检查重复的文本名称并将其替换为新值?
EN

Stack Overflow用户
提问于 2018-08-09 21:50:50
回答 1查看 28关注 0票数 0
代码语言:javascript
复制
    Set myFile = objFSO.OpenTextFile("savedhosts.txt", ForReading, True)
    Set myTemp = objFSO.OpenTextFile("savedhosts.txt" & ".tmp", ForWriting, True)
    Do Until myFile.AtEndofStream
        myLine = myFile.ReadLine
        'msgbox "hostname = " & hostname
        If InStr(myLine, hostname) Then
            MsgBox "found hostname = " & hostname & " in the savedhosts.txt file"
            myLine = hostname & ";" & hostname_IP_value
            myTemp.WriteLine myLine
            myFile.Close
            myTemp.Close
            objFSO.DeleteFile("savedhosts.txt")
            objFSO.MoveFile "savedhosts.txt" & ".tmp", "savedhosts.txt" 
        Exit Sub

        Else
            Set objTextFile = objFSO.OpenTextFile("savedhosts.txt", ForAppending, True)
            'MsgBox "hostname & ; & hostname_IP_value = " & hostname & ";" & hostname_IP_value
            objTextFile.WriteLine(hostname_value & ";" & hostname_IP_value)
            objTextFile.Close
            document.getElementById("hostname").value=hostname
        Exit Sub    
    End If
    Loop

即使在输入相同的hostname值时,脚本也不会捕获条件以显示

代码语言:javascript
复制
MsgBox "found hostname = " & hostname & " in the savedhosts.txt file"

相反,它只是将其附加到txt文件中,导致两个文本名称具有不同的值,这是不可取的!

EN

回答 1

Stack Overflow用户

发布于 2018-08-11 05:08:03

我会将您的Exit Sub语句更改为Exit Do。如果这样还不能解决问题,那么在InStr函数中指定VBTextCompare (例如,InStr(myLine, hostname, 1))。如果这仍然不能修复它,请检查您的数据,因为它可能不是您认为的格式。您可能必须使用Escape(myLine) (和/或hostname,因为您没有提到如何设置该变量)来确保您是在逐个比较。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51768843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档