Batch zum verschieben Dateien mit gleichem Namen, verschiedenem Typ und ggf. Speicherung des Namens in einer Variable
Hallo,
zuerst möchte ich mich einmal vorstellen, da erster Beitrag. Mein Name ist Heiko, ich bin 31 Jahre alt und seit 12 Jahren in der IT als Administrator tätig.
Zu meinem Anliegen:
Ich habe 2 Ordner auf dem selben System.
Ordnerstruktur:
Ordner A - hier werden alle der im folgenden benannten Dateien erzeugt
Ordner B - hat diverse Unterordner die an jedem Tag mit Erstellung von Dateien mit Datumsbezeichnung angelegt werden
Dateien (je eine .txt und eine .pdf zugehörig zu einem Fall) werden von einer Software in Ordner A gespeichert und in einem definierten Zyklus in den tagesaktuellen Unterordner unter Ordner B verschoben und verarbeitet. Sofern die Verarbeitung ohne Fehler durchgelaufen ist, werden die .txt-Dateien in .bak-Dateien umbenannt und alles ist gut.
Nun kommt es immer mal wieder vor, dass es bei der Verarbeitung zu einem Fehler kommt und ebendiese Umbenennung nicht stattfindet. In diesem Fall habe ich eine .txt-Datei und eine .pdf-Datei, welche wieder in den Ausgangsordner A verschoben werden müssten ohne die anderen Dateien im Ordner oder gar den Ordner selbst zu berühren, damit die Verarbeitung im nächsten Zyklus diese Dateien erneut verarbeiten kann.
Ein evtl. kleineres oder auch größeres Problem könnte sein, dass ich so gut wie immer mehrere .pdf-Dateien in diesen Ordnern habe und nur die zu den .txt-Dateien zugehörigen verschieben darf.
Zudem sei gesagt, dass die .txt und .pdf-Datei die zusammengehören immer den selben Dateinamen haben.
Noch einmal kurz zum verdeutlichen:
Verschieben:
abc.txt
abc.pdf
bcd.txt
bcd.pdf
Nicht verschieben:
cde.bak
cde.pdf
def.bak
def.pdf
Zudem würde es aufgrund der Masse an Unterordnern Sinn machen, wenn nur die letzten 7 erstellten Unterordner (oder, per Timestamp, Ordner der letzten 7 Tage) für das Durchsuchen berücksichtigt werden würden.
Ich bedanke mich schon einmal im Voraus für die Hilfe.
Gruß
zuerst möchte ich mich einmal vorstellen, da erster Beitrag. Mein Name ist Heiko, ich bin 31 Jahre alt und seit 12 Jahren in der IT als Administrator tätig.
Zu meinem Anliegen:
Ich habe 2 Ordner auf dem selben System.
Ordnerstruktur:
Ordner A - hier werden alle der im folgenden benannten Dateien erzeugt
Ordner B - hat diverse Unterordner die an jedem Tag mit Erstellung von Dateien mit Datumsbezeichnung angelegt werden
Dateien (je eine .txt und eine .pdf zugehörig zu einem Fall) werden von einer Software in Ordner A gespeichert und in einem definierten Zyklus in den tagesaktuellen Unterordner unter Ordner B verschoben und verarbeitet. Sofern die Verarbeitung ohne Fehler durchgelaufen ist, werden die .txt-Dateien in .bak-Dateien umbenannt und alles ist gut.
Nun kommt es immer mal wieder vor, dass es bei der Verarbeitung zu einem Fehler kommt und ebendiese Umbenennung nicht stattfindet. In diesem Fall habe ich eine .txt-Datei und eine .pdf-Datei, welche wieder in den Ausgangsordner A verschoben werden müssten ohne die anderen Dateien im Ordner oder gar den Ordner selbst zu berühren, damit die Verarbeitung im nächsten Zyklus diese Dateien erneut verarbeiten kann.
Ein evtl. kleineres oder auch größeres Problem könnte sein, dass ich so gut wie immer mehrere .pdf-Dateien in diesen Ordnern habe und nur die zu den .txt-Dateien zugehörigen verschieben darf.
Zudem sei gesagt, dass die .txt und .pdf-Datei die zusammengehören immer den selben Dateinamen haben.
Noch einmal kurz zum verdeutlichen:
Verschieben:
abc.txt
abc.pdf
bcd.txt
bcd.pdf
Nicht verschieben:
cde.bak
cde.pdf
def.bak
def.pdf
Zudem würde es aufgrund der Masse an Unterordnern Sinn machen, wenn nur die letzten 7 erstellten Unterordner (oder, per Timestamp, Ordner der letzten 7 Tage) für das Durchsuchen berücksichtigt werden würden.
Ich bedanke mich schon einmal im Voraus für die Hilfe.
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 321960
Url: https://administrator.de/contentid/321960
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
hab dir das mal schnell geschrieben. Ist nicht perfekt aber funktionell. Du kannst dich ja dann noch damit auseinandersetzen:
lg
hab dir das mal schnell geschrieben. Ist nicht perfekt aber funktionell. Du kannst dich ja dann noch damit auseinandersetzen:
@echo off & setlocal EnableDelayedExpansion
set path1="C:\TEST\1\
set path2="C:\TEST\2"
set path3="C:\TEST\log.txt"
xcopy %path1%*.txt" %path2% > %path3%
FOR /f "delims=" %%f IN (%path3%) DO (
set line="%%f"
xcopy !line:.txt=.asd! %path2%
)
pause
lg