batchdummi
Goto Top

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

Content-Key: 666524

Url: https://administrator.de/contentid/666524

Printed on: April 19, 2024 at 10:04 o'clock

Mitglied: 148121
Solution 148121 May 07, 2021 updated at 17:01:25 (UTC)
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.
Member: BatchDUMMI
BatchDUMMI May 07, 2021 at 16:33:05 (UTC)
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
Member: BatchDUMMI
BatchDUMMI May 07, 2021 at 16:53:03 (UTC)
Goto Top
javascript:void(0);

Direkteingabe
unbenannt-1
Mitglied: 148121
Solution 148121 May 07, 2021 updated at 16:59:11 (UTC)
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. ...
Member: BatchDUMMI
BatchDUMMI May 07, 2021 updated at 16:59:19 (UTC)
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 ;(
Mitglied: 148121
Solution 148121 May 07, 2021 updated at 17:00:55 (UTC)
Goto Top
Select-String statt sls benutzen oder besser gleich die PowerShell updaten 5.1 reicht s.o.
Member: BatchDUMMI
BatchDUMMI May 07, 2021 at 17:03:11 (UTC)
Goto Top
Mega Nice

Vielen Dank ... läuft 8)