VBS Script um Emailadressen aus einer TXT, CSV oder XLS-Datei zu lesen
Hallo zusammen,
ich benötige eine Möglichkeit meine Dateien (txt, csv und xls) zu durchforsten und meine Mailadressen in eine separate TXT-Datei abzulegen.
Ich weiß das man das mit einem VBS-Script wunderbar hinbekommt aber ich habe null Ahnung vom Coden.
Perfekt wäre natürlich wenn man einen ganzen Ordner durchsuchen kann.
Vielen Dank für eure Hilfe!
Gruß
Privex007
ich benötige eine Möglichkeit meine Dateien (txt, csv und xls) zu durchforsten und meine Mailadressen in eine separate TXT-Datei abzulegen.
Ich weiß das man das mit einem VBS-Script wunderbar hinbekommt aber ich habe null Ahnung vom Coden.
Perfekt wäre natürlich wenn man einen ganzen Ordner durchsuchen kann.
Vielen Dank für eure Hilfe!
Gruß
Privex007
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 252963
Url: https://administrator.de/forum/vbs-script-um-emailadressen-aus-einer-txt-csv-oder-xls-datei-zu-lesen-252963.html
Ausgedruckt am: 17.05.2025 um 03:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo Privex007, willkommen im Forum.
Mit 2 hingeschmissenen Sätzen ohne Beschreibung und Beispielen wird das vermutlich nichts.
Grüße
rubberman
ich benötige eine Möglichkeit meine Dateien (txt, csv und xls) zu durchforsten und meine Mailadressen in eine separate TXT-Datei abzulegen.
Joa, wir schreiben auch mal ein paar Zeilen fertigen Code. Voraussetzung ist aber, dass du zumindest konkret wirst, wie die Daten vorliegen und wie sie Ausgegeben werden sollen. Außerdem: Benötigst du nur die gefundenen Adressen oder sind diese irgendwie mit Zusatzdaten verlinkt, die du auch brauchst?Mit 2 hingeschmissenen Sätzen ohne Beschreibung und Beispielen wird das vermutlich nichts.
Grüße
rubberman

Hallo,
mit Powershell geht dies auch komfortabel und kurz, ohne jetzt mal xls Dateien zu beachten
(diese müsste man via Code öffnen und dann dann auswerten, geht aber auch mit etwas mehr Aufwand ...)
ginge es ungefähr so für alle txt und csv-Dateien in allen Unterordnern eines Ordners:
Gruß
jodel32
mit Powershell geht dies auch komfortabel und kurz, ohne jetzt mal xls Dateien zu beachten
(diese müsste man via Code öffnen und dann dann auswerten, geht aber auch mit etwas mehr Aufwand ...)
ginge es ungefähr so für alle txt und csv-Dateien in allen Unterordnern eines Ordners:
$allMails = 'd:\all_mails.txt'
gci "D:\Ordner\*" -Include "*.csv","*.txt" -recurse | %{([regex]'(?i)[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,6}').matches((gc $_.Fullname)) | select -Expand Value | out-file $allMails -Append}
jodel32
Hallo Privex007,
lass mal folgendes Script in deinem Verzeichnis laufen:
Grüße
rubberman
EDIT Zeile 45 ".Cells" hinzu (ändert nichts am Verhalten des Codes)
lass mal folgendes Script in deinem Verzeichnis laufen:
Option Explicit
Const strOutFile = "emailaddresses.txt"
Const ForReading = 1, ForWriting = 2
Dim objFSO, objFolder, objInFile, objOutFile, objStream, objRegex, colMatches, _
objExcelApp, objWorkbook, objWorksheet, objCell, _
strFolderpath, strFilepath, strExtension, strContent, strMatch
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objRegex = New RegExp
objRegex.Pattern = "\b[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\b"
objRegex.IgnoreCase = True
objRegex.Global = True
Set objFolder = objFSO.GetFolder(objFSO.GetParentFolderName(WScript.ScriptFullName))
Set objOutFile = objFSO.OpenTextFile(strOutfile, ForWriting, True)
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
For Each objInFile In objFolder.Files
If Not StrComp(objInFile.Name, strOutfile, vbTextCompare) = 0 Then
strFilepath = objInFile.Path
strExtension = objFSO.GetExtensionName(strFilepath)
If StrComp(strExtension, "txt", vbTextCompare) = 0 Or StrComp(strExtension, "csv", vbTextCompare) = 0 Then
Set objStream = objInFile.OpenAsTextStream(ForReading)
strContent = objStream.ReadAll
Set colMatches = objRegex.Execute(strContent)
If colMatches.Count <> 0 Then
For Each strMatch In colMatches
objOutFile.WriteLine strMatch
Next
End If
objStream.Close
ElseIf StrComp(strExtension, "xls", vbTextCompare) = 0 Then
Set objWorkbook = objExcelApp.Workbooks.Open(strFilepath, 0, True)
For Each objWorksheet In objWorkbook.Worksheets
For Each objCell In objWorksheet.UsedRange.Cells
strContent = CStr(objCell)
If strContent <> "" Then
Set colMatches = objRegex.Execute(strContent)
If colMatches.Count <> 0 Then
For Each strMatch In colMatches
objOutFile.WriteLine strMatch
Next
End If
End If
Next
Next
objWorkbook.Close False
End If
End If
Next
objExcelApp.Quit
objOutFile.Close
Grüße
rubberman
EDIT Zeile 45 ".Cells" hinzu (ändert nichts am Verhalten des Codes)