Rekursives kopieren und umbenennen von Dateien in neu anzulegenden Ordner
Problem: Datensicherung eines Unix-Mailservers im mdir-Format unter Windows einlesen.
Hallo Leute, ich hoffe ihr könnt mir helfen.
Zur Situation: Ich habe hier eine Ordnerstruktur, die den Mailverkehr eines Unix-Mailservers beinhaltet. Die Daten wurden exportiert und sehen etwa wie folgt aus
Für jeden benutzer gibt es ein Accountverzeichnis. Innerhalb dieses Verzeichnisses sind nun mehrere Unterverzeichnisse vorhanden, ähnlich wie
man es auch aus Outlook kennt (Inbox, Archiv etc. Aber auch vom User selbs angelegte Strukturen).
In den Ordnern befinden sich nun die eigentliche E-Mails mit unterschiedlichen Dateinamen und ohne Dateierweiterung.
hängt man an eine solche Maildatei nun eine Erweiterung .eml an, so lässt sich die jeweilige Datei mit Outlook öffnen.
Haken an der Sache ist nun, dass die originale Datei nicht verändert werden darf/soll.
Bisher habe ich es so gemacht, dass ich in jeden Ordner gewechselt bin un dort über Batch folgende Befehle ausgeführt habe:
mkdir \umbenannt
xcopy * \umbenannt\*.eml
Da mir der Rechner zwischenzeitlich abgeschmiert ist, sind teilweise bereits "umbenannt"-Ordner angelegt, teilweise nicht.
Um nicht noch einmal alles erneut von Hand durchgehen zu müssen, suche ich nach einer Batch-Lösung, die folgendes erfüllt:
Aufgabe: Ordnerstrucktur rekursiv durchgehen.
Wenn kein Verzeichnis "umbenannt" besteht, dieses anlegen, die Dateien aus dem jeweiligen Verzeichnis dorthin kopieren und die
Erweiterung .eml anhängen.
Alternative: Gesamte Ordnerstrucktur mit ausnahme der Verzeichnisse "umbenannt" in ein neus Verzeichnis kopieren und dabei die Erweiterung
.eml an jede vorhandene Datei anhängen.
Wäre toll, wenn Ihr mir hierzu eine Lösung anbieten könntet.
Hallo Leute, ich hoffe ihr könnt mir helfen.
Zur Situation: Ich habe hier eine Ordnerstruktur, die den Mailverkehr eines Unix-Mailservers beinhaltet. Die Daten wurden exportiert und sehen etwa wie folgt aus
Für jeden benutzer gibt es ein Accountverzeichnis. Innerhalb dieses Verzeichnisses sind nun mehrere Unterverzeichnisse vorhanden, ähnlich wie
man es auch aus Outlook kennt (Inbox, Archiv etc. Aber auch vom User selbs angelegte Strukturen).
In den Ordnern befinden sich nun die eigentliche E-Mails mit unterschiedlichen Dateinamen und ohne Dateierweiterung.
hängt man an eine solche Maildatei nun eine Erweiterung .eml an, so lässt sich die jeweilige Datei mit Outlook öffnen.
Haken an der Sache ist nun, dass die originale Datei nicht verändert werden darf/soll.
Bisher habe ich es so gemacht, dass ich in jeden Ordner gewechselt bin un dort über Batch folgende Befehle ausgeführt habe:
mkdir \umbenannt
xcopy * \umbenannt\*.eml
Da mir der Rechner zwischenzeitlich abgeschmiert ist, sind teilweise bereits "umbenannt"-Ordner angelegt, teilweise nicht.
Um nicht noch einmal alles erneut von Hand durchgehen zu müssen, suche ich nach einer Batch-Lösung, die folgendes erfüllt:
Aufgabe: Ordnerstrucktur rekursiv durchgehen.
Wenn kein Verzeichnis "umbenannt" besteht, dieses anlegen, die Dateien aus dem jeweiligen Verzeichnis dorthin kopieren und die
Erweiterung .eml anhängen.
Alternative: Gesamte Ordnerstrucktur mit ausnahme der Verzeichnisse "umbenannt" in ein neus Verzeichnis kopieren und dabei die Erweiterung
.eml an jede vorhandene Datei anhängen.
Wäre toll, wenn Ihr mir hierzu eine Lösung anbieten könntet.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 179768
Url: https://administrator.de/forum/rekursives-kopieren-und-umbenennen-von-dateien-in-neu-anzulegenden-ordner-179768.html
Ausgedruckt am: 19.05.2025 um 06:05 Uhr
3 Kommentare
Neuester Kommentar
Hallo net-agent und willkommen im Forum!
Das könnte (ungetestet) etwa so gehen:
Wegen der beiden
Grüße
bastla
Das könnte (ungetestet) etwa so gehen:
@echo off & setlocal
set "Ordner=D:\Mail-Ordner"
set "Neu=umbenannt"
for /d /r "%Ordner%" %%i in (*) do (
if /i "%%~nxi" neq "%Neu%" if not exist "%%i\%Neu%" (
echo md "%%i\%Neu%"
echo copy "%%i\*" "%%i\%Neu%\*.eml"
)
)
pause
echo
in den Zeilen 7 und 8 zeigt der Batch vorerst nur an, was passieren wird, wenn diese echo
entfernt werden ...Grüße
bastla