batchdummi

Ein Teil einer Zeile (34 oder 35) aus vielen eml-Datei kopieren und in eine TXT einfügen!

Hallo zusammen,
Ich habe eine große Anzahl von E-Mails und möchte gern die E-Mail-Adressen aus der "Antworten an Zeile" sichern um anschließend die E-Mails aus Platzgründen zu entfernen.
Leider gibt es für meine Thunderbird Version 60.9.1 kein passendes PlugIn um es zu filtern.
Daher habe ich gedacht, ich speichere mir die Dateien Lokal in einem Ordner und filtere mir aus den eml-Dateien jeweils die E-Mail-Adresse aus der 34 oder 35 Zeile heraus, in eine Lehre Textdatei.

geplante Abläufe:
1. Batch Datei liegt im betreffenden Ordner
2. Dateien werden einzeln nacheinander durch die Batch-Datei geöffnet und nach dem Kopieren geschlossen.
3. Das Script sucht sich die betreffende Zeile (34 oder 35 Zeile) anhand eines Schlüsselwortes "Reply-To:" heraus.
Beispiel Zeile >>> "Reply-To: Diese Emailadresse <Diese.Emailadresse@gmail.com>"
4. Das Script kopiert die betreffenden E-Mail Adresse Diese.Emailadresse@gmail.com aus der Datei heraus und kopiert sie nach einander Zeile für Zeile in eine lehre Datei LehreTextDatei.txt


@echo off

for /f "delims=" %%i in (*.eml) do (  

set zeile=%%i
set vergl=%zeile:~Reply-To:%

if "%Vergl%"=="???" echo %zeile%>>E-MAIL-LISTE.txt  
)

Irgendwie denke ich falsch 8(
Ich benötige dringend Eure Hilfe und bin für jeden Tipp dankbar!

BatchDUMMI
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 666524

Url: https://administrator.de/forum/ein-teil-einer-zeile-34-oder-35-aus-vielen-eml-datei-kopieren-und-in-eine-txt-einfuegen-666524.html

Ausgedruckt am: 30.04.2025 um 07:04 Uhr

148121
Lösung 148121 07.05.2021 aktualisiert um 19:01:25 Uhr
Goto Top
In Powershell nen einfacher Einzeiler
Select-String 'D:\Messages\*.eml' -Pattern '^Reply-To:.*<([^>]+)' | %{$_.Matches.Groups[1].Value.trim()} | set-content emailliste.txt  

Geht auch in ner Batch
@echo off
set "ordner=D:\Messages"  
set "ausgabe=D:\E-MAIL-LISTE.txt"  
powershell -EP Bypass -C "select-string '%ordner%\*.eml' -Pattern '^Reply-To:.*<([^>]+)' | %%{$_.Matches.Groups[1].Value.trim()} | set-content '%ausgabe%'"  
Gruß w.
BatchDUMMI
BatchDUMMI 07.05.2021 um 18:33:05 Uhr
Goto Top
irgendwie hat er ein Problem mit powershell syntax sls ' Zeile1 Zeichen4 '

javascript:void(0);


@echo off
set "ordner=G:\Test"  
set "ausgabe=G:\Test\E-MAIL-LISTE.txt"  
powershell -EP Bypass -C "sls '%ordner%\*.eml' -Pattern '^Reply-To:.*<([^>]+)' | %%{$_.Matches.Groups[1].Value} | sc '%ausgabe%'"  
182136
BatchDUMMI
BatchDUMMI 07.05.2021 um 18:53:03 Uhr
Goto Top
javascript:void(0);

Direkteingabe
unbenannt-1
148121
Lösung 148121 07.05.2021 aktualisiert um 18:59:11 Uhr
Goto Top
Deine PowerShell ist zu alt, da ist mal ein Update fällig. Sls ist ein Alias für Select-String den gibt's in der alten PowerShell noch nicht.
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell. ...
BatchDUMMI
BatchDUMMI 07.05.2021 aktualisiert um 18:59:19 Uhr
Goto Top
Wie kann ich das trotzdem ausführen?

gibt es eine Lösung?

Muss ich gleich auf v7.1.3 updaten? nicht das ich mir mein Win 7 zerstöre ;(
148121
Lösung 148121 07.05.2021 aktualisiert um 19:00:55 Uhr
Goto Top
Select-String statt sls benutzen oder besser gleich die PowerShell updaten 5.1 reicht s.o.
BatchDUMMI
BatchDUMMI 07.05.2021 um 19:03:11 Uhr
Goto Top
Mega Nice

Vielen Dank ... läuft 8)