Como você tem muitos arquivos .txt, faz sentido fazer uma automação simples em vez de extrair os valores de cada arquivo manualmente. Eu sugiro usar o WSH VBScript abaixo:
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
Basta colar esse código no bloco de notas, salvar como arquivo de texto e substituir manualmente a extensão de arquivo .txt
por .vbs
. Então, tudo o que você precisa é selecionar seus arquivos de texto na janela do Explorer e arrastá-los e soltá-los no script.
Para os arquivos que você compartilhou, eu tenho a saída da seguinte forma:
30_SCH51BQ139.txt
036
30_SCH51BQ141.txt
038
30_SCH51BQ144.txt
040
30_SCH51BQ147.txt
043