0
幫助將是偉大的,因爲我是無能爲力。新VB腳本,並創建一個VB腳本會發現有一個通配符名稱的文件,查找中它的模式和複製信息到它creates.But我所得到的另一個文件是一個空白文件VBscripts和通配符
Const ForReading = 1
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "DETECTION"
Const ForWriting = 2
strFolderName = "c:"
strTargetFile = "C:\race\master.txt"
strFileNameConstant = "Master"
strComputer = "."
objregex.global = true
objregex.ignorecase = true
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colSubfolders = objWMIService.ExecQuery ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory " & "ResultRole = PartComponent")
arrFolderPath = Split(strFolderName, "\")
strNewPath = ""
For i = 1 to Ubound(arrFolderPath)
strNewPath = strNewPath & "\\" & arrFolderPath(i)
Next
strPath = strNewPath & "\\"
Set colFiles = objWMIService.ExecQuery ("Select * from CIM_DataFile where Path = '" & strPath & "'")
For Each objFile in colFiles
If InStr(Lcase(objFile.Name),LCase(strFileNameConstant)) Then
Set objFile = objFSO.OpenTextFile(objFile.Name, 1)
strSearchString = objFile.ReadAll
objFile.Close
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Global = True
objRegEx.Pattern = "DETECTION"
strNewText = objRegEx.Replace(strSearchString,VBCrlf & "DETECTION" & VBCrLf)
End If
Next
'Writes Target file
Set objFile = objFSO.OpenTextFile(strTargetFile, ForWriting, true)
objFile.WriteLine(strNewText)
objFile.Close
**更新:代碼的功能是讀取一個日誌文件(主文件),該文件有時可以在其名稱中包含通配符(master-123.123.txt)並查找模式(檢測),然後創建另一個文件中包含短語「檢測」的行。它目前所做的是創建文件,但不包括具有「在其中檢測」短語的行。林不知道什麼即時通訊做錯了,因爲我沒有得到任何錯誤和代碼。它創建該文件並能夠找到主文件,即使它具有通配符。
你能解釋一下嗎?沒有得到想法。一些例子會有所幫助 – mhs 2014-12-03 04:42:12
代碼的功能是讀取一個日誌文件(主文件),該文件有時可以在名稱中包含通配符(master-123.123.txt)並查找模式(檢測),然後創建另一個文件中包含短語「檢測」的行。它目前所做的是創建文件,但不包括具有「在其中檢測」短語的行,我不知道爲什麼。 – user3266908 2014-12-03 14:05:03
你的RegEX似乎並不正確。嘗試改變它。我試過這個「。*檢測+。*」 你確定你的腳本找到主文件嗎? – mhs 2014-12-04 01:04:11