我有一個log.txt檔案,檔案內容如下:
cisco#show processes
CPU utilization for five seconds: 2%/1%; one minute: 5%; five minutes: 5%
PID QTy PC Runtime (ms) Invoked uSecs Stacks TTY Process
1 Cwe 41617E30 0 50 0 5472/6000 0 Chunk Manager
2 Csp 4297C14C 59116 25877476 2 2528/3000 0 Load Meter
cisco#show mem
Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)
Processor 4671E7D0 898471984 137597416 760874568 759095384 742587636
我想提取記事本里面的某些欄位,比如five minutes: 5%和Used(b) 137597416寫入到excel中,A列是我設定好的固定內容,B列是要程式自動填寫的。excel表格式為:
A列 B列
CPU使用率 5%
記憶體使用率 137597416
請教VB大神,該如何寫這個腳本?萬分感謝!
uj5u.com熱心網友回復:
Option Explicit
Private Sub Command1_Click()
Dim strtest As String
strtest = strtest & "cisco#show processes" & vbCrLf
strtest = strtest & "CPU utilization for five seconds: 2%/1%; one minute: 5%; five minutes: 5%" & vbCrLf
strtest = strtest & "PID QTy PC Runtime (ms) Invoked uSecs Stacks TTY Process" & vbCrLf
strtest = strtest & "1 Cwe 41617E30 0 50 0 5472/6000 0 Chunk Manager" & vbCrLf
strtest = strtest & "2 Csp 4297C14C 59116 25877476 2 2528/3000 0 Load Meter" & vbCrLf
strtest = strtest & vbCrLf
strtest = strtest & vbCrLf
strtest = strtest & "cisco#show mem" & vbCrLf
strtest = strtest & "Head Total(b) Used(b) Free(b) Lowest(b) Largest(b)" & vbCrLf
strtest = strtest & "Processor 4671E7D0 898471984 137597416 760874568 759095384 742587636" & vbCrLf
Debug.Print strtest
Debug.Print "CPU占用率:" & getStrBtween2Key(strtest, "five minutes: ", vbCrLf) 'CPU占用率的前導特征字全文唯一,于是直接找
Dim lngTmp As Long
lngTmp = InStr(1, strtest, "Largest(b)") '獲得記憶體資料的前導特征位置
lngTmp = InStr(lngTmp + 1, strtest, " ")
lngTmp = InStr(lngTmp + 1, strtest, " ")
lngTmp = InStr(lngTmp + 1, strtest, " ") '獲取記憶體資料行第三個空格的起始位置
Debug.Print "記憶體占用:" & getStrBtween2Key(strtest, " ", " ", lngTmp) '取起始位置開始一個空格為開頭,一個空格為結尾,中間的字串
End Sub
'取輸入字串 strin 從 lngStartFrom 位置開始 前導特征字串為 strBefore 后綴特征字串為 strAfter 的字串
Private Function getStrBtween2Key(strIn As String, strBefore As String, strAfter As String, Optional lngStartFrom As Long = 1) As String
Dim lngStart As Long
Dim lngEnd As Long
lngStart = InStr(lngStartFrom, strIn, strBefore) + Len(strBefore)
lngEnd = InStr(lngStart, strIn, strAfter)
getStrBtween2Key = Mid(strIn, lngStart, lngEnd - lngStart)
End Function
uj5u.com熱心網友回復:
拜謝大神幫助!轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/54340.html
標籤:VB基礎類
