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