溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用vbscript實(shí)現(xiàn)在文本文件中搜索兩個(gè)項(xiàng)

發(fā)布時(shí)間:2021-09-30 10:01:41 來源:億速云 閱讀:112 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了怎么用vbscript實(shí)現(xiàn)在文本文件中搜索兩個(gè)項(xiàng),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

代碼如下:


Const ForReading = 1 
blnFound = False 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading) 
strContents = objFile.ReadAll 
objFile.Close 
If InStr(strContents, "Windows 2000") Then 
    blnFound = True 
End If 
If InStr(strContents, "Windows XP") Then 
    blnFound = True 
End If 
If blnFound Then 
    Wscript.Echo "Either Windows 2000 or Windows XP appears in this file." 
Else 
    Wscript.Echo "Neither Windows 2000 nor Windows XP appears in this file." 
End If 

此腳本開頭定義了一個(gè)名為 ForReading 的常量,并將其值設(shè)定為 1;打開文本文件時(shí)我們將用到它。 我們還創(chuàng)建了一個(gè)名為 blnFound 的變量,并將其值指定為 False;我們將使用此變量來跟蹤是否在文件中找到了任意一個(gè)搜索術(shù)語。 如果至少找到了一個(gè)術(shù)語,我們就將 blnFound 的值改為 True;否則,該值將保持 False 不變。
接下來我們打開文件 C:\Scripts\Test.txt 進(jìn)行讀取,然后使用 ReadAll 方法將該文件的所有內(nèi)容讀入名為 strContents 的變量中;實(shí)際上我們將對存儲(chǔ)于內(nèi)存中的此文件“副本”進(jìn)行搜索。 由于我們不再需要此物理文件,因此我們調(diào)用 Close 方法將該文件關(guān)閉。
此時(shí),我們可進(jìn)行第一次搜索了。 下面這行代碼使用 InStr 函數(shù)來確定是否可在變量 strContents 中的某個(gè)位置找到字符串 Windows 2000:
If InStr(strContents, "Windows 2000") Then
如果 InStr 為 True,則我們將 blnFound 的值設(shè)置為 True;如果 InStr 為 False,我們將直接跳至下一個(gè)搜索。 在下一個(gè)搜索中,我們重復(fù)此過程,這次將搜索字符串 Windows XP:
If InStr(strContents, "Windows XP") Then
如果找到了 Windows 2000 或 Windows XP(或二者均找到了),則 blnFound 將為 True;如果兩者均未找到,則 blnFound 將仍為 False。 在腳本的末尾,我們檢查 blnFound 的值,并指出是否在文件中找到了一個(gè)或多個(gè)搜索短語。
但如果您想知道文件中是否同時(shí)包含這兩個(gè)搜索短語,該怎么辦呢? 我們將不再對此做詳細(xì)闡述,但下面的腳本可告訴您是否可在文件中同時(shí)找到兩個(gè)目標(biāo)短語:
Const ForReading = 1
intFound = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\Scripts\Test.txt", ForReading)
strContents = objFile.ReadAll
objFile.Close
If InStr(strContents, "Windows 2000") Then
    intFound = intFound + 1
End If
If InStr(strContents, "Windows XP") Then
    intFound = intFound + 1
End If
If intFound = 2 Then
    Wscript.Echo "The text file contains both Windows 2000 and Windows XP."
Else
    Wscript.Echo "The text file does not contain both Windows 2000 and Windows XP."
End If
是的,該腳本的確與前面的腳本很相似。 最大的不同之處在于我們沒有使用 True-False 變量;而是使用了一個(gè)名為 intFound 的計(jì)數(shù)器變量。 該腳本首先搜索 Windows 2000;如果找到了該短語,則會(huì)將 intFound 加 1。(由于 intFound 開始時(shí)為 0,這就意味著此時(shí) intFound 將等于 1。) 
然后該腳本將搜索 Windows XP,如果找到了該短語,會(huì)將 intFound 的值加 1。最終結(jié)果如何呢? 在腳本末尾,只有同時(shí)找到了兩個(gè)目標(biāo)短語,intFound 才會(huì)等于 2;如果 intFound 等于 0 或 1,則表示一個(gè)都沒找到或只找到了一個(gè)目標(biāo)短語。 此時(shí)所要做的就是回顯搜索結(jié)果。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“怎么用vbscript實(shí)現(xiàn)在文本文件中搜索兩個(gè)項(xiàng)”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI