Ordnerstruktur durchsuchen - passenden Ordner finden und Dateien in Unterordner kopieren
Hallo,
ich habe aktuell das Problem, dass ich gerne pdf Dateien über die Aufgabenplanung per batch in einer Ordnerstruktur ablegen möchte.
Ich lege per Software pdf Dateien in einen Ordner (D:\verarbeitet\) ab.
Die pdf Dateien werden nicht direkt in diesen Ordner gelegt, sondern in Unterordner, die automatisch erzeugt und als Ordnername aus einer 4 bis 6 stelligen Nummer bestehen.
D:\verarbeitet\3764\*.pdf
D:\verarbietet\10017\*.pdf
Die pdf Dateien sollen in eine andere Ordnerstruktur (E:\Ablage\) verschoben werden.
Dort existieren Unterordner die aus einer beliebigen Bezeichnung, gefolgt von einem Unterstrich und der bereits oben erwähnten Nummer bestehen.
Besipiel
E:\Ablage\Max.Mustermann_3764\
E:\Ablage\Peter Meier_10017\
Nun sind meine Batch Kenntnisse stark eingeschränkt, sodass ich hier nun um Hilfe betteln muss.
Mehr als eine groben Ablaufplan kann ich nicht beisteuern.
- Ordner D:\verarbeitet\ mit einer for Schleife durchlaufen, sofern Ordner vorhanden, Ordnernamen in eine Variable einlesen
- Im Pfad E:\Ablage\ mit einer for Schleife jeden Ordner durchlaufen und von rechts nach links bis zum Unterstrich alle zeichen in eine Variable einlesen
- Wenn die Werte beider Variablen übereinstimmen, die Datei verschieben
- Ordner im Pfad D:\verarbeitet\ löschen
- Sonst den nächsten Ordner durchsuchen
- Fertig.
Über Antworten würde ich mich freuen.
Schöne Grüße
Alforno
ich habe aktuell das Problem, dass ich gerne pdf Dateien über die Aufgabenplanung per batch in einer Ordnerstruktur ablegen möchte.
Ich lege per Software pdf Dateien in einen Ordner (D:\verarbeitet\) ab.
Die pdf Dateien werden nicht direkt in diesen Ordner gelegt, sondern in Unterordner, die automatisch erzeugt und als Ordnername aus einer 4 bis 6 stelligen Nummer bestehen.
D:\verarbeitet\3764\*.pdf
D:\verarbietet\10017\*.pdf
Die pdf Dateien sollen in eine andere Ordnerstruktur (E:\Ablage\) verschoben werden.
Dort existieren Unterordner die aus einer beliebigen Bezeichnung, gefolgt von einem Unterstrich und der bereits oben erwähnten Nummer bestehen.
Besipiel
E:\Ablage\Max.Mustermann_3764\
E:\Ablage\Peter Meier_10017\
Nun sind meine Batch Kenntnisse stark eingeschränkt, sodass ich hier nun um Hilfe betteln muss.
Mehr als eine groben Ablaufplan kann ich nicht beisteuern.
- Ordner D:\verarbeitet\ mit einer for Schleife durchlaufen, sofern Ordner vorhanden, Ordnernamen in eine Variable einlesen
- Im Pfad E:\Ablage\ mit einer for Schleife jeden Ordner durchlaufen und von rechts nach links bis zum Unterstrich alle zeichen in eine Variable einlesen
- Wenn die Werte beider Variablen übereinstimmen, die Datei verschieben
- Ordner im Pfad D:\verarbeitet\ löschen
- Sonst den nächsten Ordner durchsuchen
- Fertig.
Über Antworten würde ich mich freuen.
Schöne Grüße
Alforno
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 292484
Url: https://administrator.de/contentid/292484
Ausgedruckt am: 22.11.2024 um 11:11 Uhr
6 Kommentare
Neuester Kommentar
Moin,
solltest du hiermit hin bekommen
Gruß grexit
solltest du hiermit hin bekommen
@echo off
for /d %%a in ("D:\verarbeitet\*") DO (
for /d %%b in ("E:\Ablage\*_%%~nxa") DO (
move "%%a\*.pdf" "%%b\"
rd "%%a" /s /q
)
)
Gruß grexit
Guten Abend Alforno,
deine neuen Anforderungen sollten hiermit zu realisieren sein
Gruß grexit
deine neuen Anforderungen sollten hiermit zu realisieren sein
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "ablage=E:\Ablage"
set "verarbeitet=D:\verarbeitet"
set "fehler=D:\fehler"
for /d %%a in ("%verarbeitet%\*") DO (
for /d %%b in ("%ablage%\*_%%~nxa") DO (
for %%c in ("%%a\*.pdf") DO (
set "name=%%~nc" & set "year=!name:~0,4!" & set "target=%%b\!year!"
if not exist "!target!" md "!target!" >nul
move "%%c" "!target!"
)
rd "%%a" /s /q
)
)
robocopy "%verarbeitet%" "%fehler%" /e /move >nul
if not exist "%verarbeitet%" md "%verarbeitet%" >nul
Gruß grexit
War nur ein kleiner Fehler in einer Variablenzuweisung, ist im letzten Post behoben, und die Verzeichnisse wurden zur leichteren Handhabung zusätzlich Variablen zugewiesen.
Gruß grexit
Gruß grexit