Daten aus dem Feld "date sent" in den Titel schreiben
Hallo zusammen,
ich habe folgendes Problem:
Ich habe eine große Sammlung von .EML Dateien, die nicht aussagekräftig benannt sind.
Ich würde die Dateien gern so umbenennen, dass das Attribut aus dem Feld "date sent" in den Titel integriert wird (am Besten direkt am Anfang).
Ich könnte mir vorstellen, dass man dazu eine .bat Datei nutzen kann. Auf dem Gebiet bin ich allerdings ein totaler Neuling. Kann mir jemand von euch helfen?
LG ellocko
PS: Es geht nicht um das Erstell- oder Bearbeitungsdatum
ich habe folgendes Problem:
Ich habe eine große Sammlung von .EML Dateien, die nicht aussagekräftig benannt sind.
Ich würde die Dateien gern so umbenennen, dass das Attribut aus dem Feld "date sent" in den Titel integriert wird (am Besten direkt am Anfang).
Ich könnte mir vorstellen, dass man dazu eine .bat Datei nutzen kann. Auf dem Gebiet bin ich allerdings ein totaler Neuling. Kann mir jemand von euch helfen?
LG ellocko
PS: Es geht nicht um das Erstell- oder Bearbeitungsdatum
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 333540
Url: https://administrator.de/contentid/333540
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
2 Kommentare
Neuester Kommentar
Servus @ellocko94, willkommen auf Administrator.de.
Habe ich hier etwas ähnliches schon mal gespostet. Hier ein Powershell-Skript angepasst an deine Anforderung (benötigt zwingend ein installiertes Outlook!). Ordner in dem sich die EML-Dateien befinden bitte in der zweiten Zeile anpassen.
(p.s. Die EML-Dateien müssen sich mit Outlook öffnen lassen, bitte teste dies vorher.)
Falls Outlook nicht verfügbar sein sollte, dürfte es auch mit folgender Methode funktionieren:
Grüße Uwe
Habe ich hier etwas ähnliches schon mal gespostet. Hier ein Powershell-Skript angepasst an deine Anforderung (benötigt zwingend ein installiertes Outlook!). Ordner in dem sich die EML-Dateien befinden bitte in der zweiten Zeile anpassen.
(p.s. Die EML-Dateien müssen sich mit Outlook öffnen lassen, bitte teste dies vorher.)
# Ordner der die EML-Dateien enthält
$folder = 'D:\eml'
# Outlook COM-Object holen
[void][reflection.assembly]::LoadWithPartialName("microsoft.visualbasic")
$ol = [microsoft.visualbasic.interaction]::GetObject($null,"Outlook.Application")
if (!$ol){$ol = New-Object Outlook.Application}
# Für jede EML-Datei im Ordner (inkl. Unterordner)
gci $folder -Filter *.eml -recurse | ?{!$_.PSIsContainer} | %{
# öffne die EML-Datei mit Outlook
start-process outlook.exe -ArgumentList "/eml `"$($_.FullName)`""
# warten bis inspector die mail geöffnet hat
while (!$ol.ActiveInspector().CurrentItem){sleep .2}
# mail referenzieren
$mail = $ol.ActiveInspector().CurrentItem
$datesend = $mail.SentOn.toString("yyyyMMdd_HHmmss")
# mail schließen
$mail.Close($false) | out-null
# mail umbenennen
$_ | rename-item -NewName "$($datesend)_$($_.Name)" -Force -Verbose
}
# Ordner der die EML-Dateien enthält
$folder = 'D:\eml'
# Für jede EML-Datei im Ordner (inkl. Unterordner)
gci $folder -Filter *.eml -recurse | ?{!$_.PSIsContainer -and ((gc $_.FullName -raw) -match '(?ims)^Date:\s*([^\r\n]+)')} | %{
$datesent = [datetime]::MaxValue
if ([datetime]::TryParse([string]$matches[1].Trim(),[ref]$datesent)){
# mail umbenennen
$_ | rename-item -NewName "$($datesent.toString('yyyyMMdd_HHmmss'))_$($_.Name)" -Verbose
}else{
write-host "Datum für Datei '$($_.Fullname)' wurde nicht erkannt." -F Yellow
}
}
Gibt's noch Fragen/Unklarheiten?
Wenns das dann war, bitte nicht vergessen den Beitrag noch auf gelöst zu setzen, und Lösungen zu markieren. Merci.
Wenns das dann war, bitte nicht vergessen den Beitrag noch auf gelöst zu setzen, und Lösungen zu markieren. Merci.