Поскольку у вас много файлов .txt, имеет смысл выполнить простую автоматизацию, а не извлекать значения из каждого файла вручную. Я предлагаю использовать WSH VBScript ниже:
strRes = ""
For Each strPath In WScript.Arguments
With CreateObject("Scripting.FileSystemObject")
If .FileExists(strPath) Then
strRes = strRes & .GetFileName(strPath) & vbCrLf
strCont = LoadTextFromFile(strPath, "us-ascii")
With CreateObject("VBScript.RegExp")
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = "-A(\d{3})"
Set objMatches = .Execute(strCont)
For Each objMatch In objMatches
strRes = strRes & objMatch.SubMatches(0) & vbCrLf
Next
End With
End If
End With
Next
ShowInNotepad strRes
Function LoadTextFromFile(strPath, strCharset)
With CreateObject("ADODB.Stream")
.Type = 1 ' TypeBinary
.Open
.LoadFromFile strPath
.Position = 0
.Type = 2 ' adTypeText
.Charset = strCharset
LoadTextFromFile = .ReadText
.Close
End With
End Function
Sub ShowInNotepad(strToFile)
Dim strTempPath
With CreateObject("Scripting.FileSystemObject")
strTempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "\" & .GetTempName
With .CreateTextFile(strTempPath, True, True)
.WriteLine strToFile
.Close
End With
CreateObject("WScript.Shell").Run "notepad.exe " & strTempPath, 1, True
.DeleteFile (strTempPath)
End With
End Sub
Просто вставьте этот код в блокнот, сохраните как текстовый файл и вручную замените расширение .txt
на .vbs
. Тогда все, что вам нужно, это выбрать текстовые файлы в окне проводника и перетащить их в скрипт.
Для файлов, которыми вы поделились, у меня есть следующий вывод:
30_SCH51BQ139.txt
036
30_SCH51BQ141.txt
038
30_SCH51BQ144.txt
040
30_SCH51BQ147.txt
043