国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - VBS - 用vbs計算某個詞在日志文件中的出現次數

用vbs計算某個詞在日志文件中的出現次數

2020-07-09 09:30VBS教程網 VBS

如何計算 Failure 一詞在日志文件中的出現次數?這里有個問題:由于日志文件一個接一個地寫入事件,因而創建了一個非常之長的文本行。

問:
您好,腳本專家!如何計算 Failure 一詞在日志文件中的出現次數?這里有個問題:由于日志文件一個接一個地寫入事件,因而創建了一個非常之長的文本行。
-- FS
答:
您好,FS。根據您電子郵件的其余部分來看,您的日志文件與下面的有些相似:
Failure 2/7/2006 8:25 AM Failure 2/7/2006 9:45 AM Success 
2/7/2006 3:10 PM Failure 2/8/2006 9:15 AM Success 2/7/2006 3:01 PM
正如您提到的,您首先想到的是使用 InStr 函數來查看是否 Failure 出現在日志文件中每行的某個地方;然后您可以通過活動計數器計算找到該詞的次數,這與我們在昨天的專欄中演示的方法非常相似。這是個好主意,但是,正如您所發現的,在該方案中有一個重大的缺陷:從技術角度來說,您的日志文件僅包含一行。因此,盡管實際存在很多實例,但您的腳本總是報告只發現 Failure 的一個實例。您在郵件中寫道:但是我被難住了,因為無法將單行拆為多行。
唉,您對我們一點信心都沒有。試試這個看看是不是合適:

復制代碼 代碼如下:


Const ForReading = 1 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile("c:\scripts\test.log", ForReading) 
strContents = objFile.ReadAll 
objFile.Close 
i = 0 
arrLines = Split(strContents, " ") 
For Each strLine in arrLines 
    If InStr(strLine, "Failure") Then 
        i = i + 1 
    End If 
Next 
Wscript.Echo "Number of failures: " & i 

當然,我們還有其他一些方法也能夠解決此問題。我們采用此方法,因為它完全吻合您最初的想法,而且我們認為它對于每個人來說都非常容易理解。我們提到這一點只是為了防止有人讀到此處時想,“嘿,我可不會這么解決這個問題。”沒問題:這不是唯一的答案。它只是答案的一種。
好了,那么腳本本身呢?嗯,我們首先定義了一個名為 ForReading 的常量;我們會在稍后打開日志文件時使用此常量。接下來我們創建 Scripting.FileSystemObject 的實例并使用 OpenTextFile 方法打開文件 C:\Scripts\Test.log。文件打開后,我們使用 ReadAll 方法以將此文件的全部內容讀取到變量 strContents 中,然后關閉 Test.log 文件。
您清楚了嗎?接下來我們將值 0 賦于名為 i 的計數器變量;我們將使用 i 作為活動計數器來計算我們遇到 Failure 一詞的每個實例。然后我們使用下面這行代碼:
arrLines = Split(strContents, " ")
還記得您說過的,您被難住,因為日志文件整個是非常之長的一行嗎?嗯,我們在這里主要是將您的日志文件(或至少在變量 strContents 中存儲的那個版本)分成一組較短的行。在您的日志文件中,單個詞語以空格分開。在這行代碼中,我們使用 Split 函數將 strContents 的值“拆分”為數組;通過對空格拆分(即,通過每次遇到空格便在數組中創建新項)我們得到一個數組,其開頭如下:
Failure 
2/7/2006 
8:25 
AM 
Failure 
2/7/2006 
9:45 
AM 
Success
當然,它看起來很好笑,但是現在我們可以建立一個 For Each 循環來遍歷數組中的每項;更重要的是,我們還可以使用 InStr 方法查看是否可在這些行的任意行中找到 Failure 一詞。如果可以,我們將增加計數器變量 i 的值。所有這些均由下面這段代碼執行:
For Each strLine in arrLines
    If InStr(strLine, "Failure") Then
        i = i + 1
    End If
Next
在我們遍歷 For Each 循環后,我們所要做的只是回顯 failure,然后就完成了。
現在,檢查:我們所要做的只是回顯在日志文件中找到的 failure 數量。您的腳本可能在完成回顯所有 failure 之前超時很長時間。(但我們仍認為與名人共同編寫腳本要比觀看與名人共舞或滑冰更有意思。)

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产中文字幕在线观看 | 国产一区二区三区播放 | 成人午夜视频免费 | 亚洲精品一区二区三区蜜桃久 | 日韩视频专区 | 成人国产在线 | 中文久久| 欧美综合视频 | 国产一区二区精品久久 | 欧美一区在线看 | 久久精彩免费视频 | 国产精品久久久久久久久久久久冷 | 亚洲第一成年人视频 | 久久国产区 | 国产99一区二区 | 亚洲高清免费视频 | t66y最新地址一地址二69 | 国产一区二区三区成人 | 免费视频爱爱太爽了 | 91短视频版在线观看www免费 | 日韩中文字幕在线观看视频 | 中文字幕在线观看日本 | 精品一区二区在线观看 | 国产一区二区三区视频 | 国产妇女乱码一区二区三区 | 亚洲视频一区 | 亚洲男人的天堂网站 | 91免费观看| 国产日韩视频 | 午夜在线小视频 | 国产精品久久久久久久久久久久久 | 国产精品一区在线观看 | 日韩精品一区二区三区四区五区 | 久久久久网站 | 日韩在线不卡一区 | 亚洲综合首页 | 欧美另类视频 | 亚洲国产精品一区二区三区 | 亚洲专区 变态 另类 | 成人精品国产免费网站 | 波多野结衣先锋影音 |