Vbscript: cerca ed estrai e-mail da un file testo

Cercare con VBSCRIPT  e-mail in un file testo

VBScript (Visual Basic Scripting Edition) è un linguaggio di scripting basato su Visual Basic utilizzato per automazione e scripting in ambienti Windows.

In questo articolo, esamineremo un esempio di utilizzo di VBScript per estrarre indirizzi email da un file di testo e archiviarli in un nuovo file.

Utilizzo di Regular expressions per la ricerca di e-mail 

Nello script sotto utilizziamo La funzione FindEmailAddresses che utilizza espressioni regolari per individuare gli indirizzi email nel testo.

L’espressione regolare specificata cerca pattern di indirizzi email validi, includendo la parte locale, l’@ e il dominio.

VBScript Code

Option Explicit

Dim inputFile, outputFile
Dim objFSO, objInputFile, objOutputFile
Dim strContent, match, matches

' Specifica il percorso del tuo file di input e output
inputFile = "C:\Users\comodo\alemail.txt"
outputFile = "C:\Users\comodo\indirizzi_email.txt"

' Crea un oggetto File System
Set objFSO = CreateObject("Scripting.FileSystemObject")

' Verifica se il file di input esiste
If objFSO.FileExists(inputFile) Then
    ' Apre il file di input in modalità lettura
    Set objInputFile = objFSO.OpenTextFile(inputFile, 1)
    
    ' Legge il contenuto del file
    strContent = objInputFile.ReadAll
    
    ' Chiude il file di input
    objInputFile.Close
    
    ' Chiama la funzione per cercare gli indirizzi email
    Set matches = FindEmailAddresses(strContent)
    
    ' Apre il file di output in modalità scrittura
    Set objOutputFile = objFSO.CreateTextFile(outputFile, True)
    
    ' Scrive gli indirizzi email nel file di output
    For Each match In matches
        objOutputFile.WriteLine match.Value
    Next
    
    ' Chiude il file di output
    objOutputFile.Close
    
    WScript.Echo "Indirizzi email trovati e salvati con successo."
Else
    WScript.Echo "Il file di input non esiste."
End If

' Funzione per cercare gli indirizzi email
Function FindEmailAddresses(inputText)
    Dim regex, matches
    Set regex = New RegExp
    regex.Global = True
    regex.IgnoreCase = True
    regex.Pattern = "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
    
    Set matches = regex.Execute(inputText)
    Set FindEmailAddresses = matches
End Function