hleiske
Goto Top

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ß

Content-Key: 321960

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

Ausgedruckt am: 19.03.2024 um 02:03 Uhr

Mitglied: SystemDown
SystemDown 24.11.2016 um 14:09:24 Uhr
Goto Top
Hallo,

Verschieb doch einfach alle .txt Dateien und lass dir mitschreiben wie diese heissen. Anschliessend machst du eine Schleife welche die vorher gespeicherten Dateinamen ausliest, die Dateiendung ändert und dann den Befehl zum verschieben ausführt.

lg
Mitglied: HLeiske
HLeiske 24.11.2016 um 21:07:31 Uhr
Goto Top
Hi,

da ich im scripten leider nicht so bewandert bin, hatte ich auf eine Lösung gehofft face-smile Wie die Vorgehensweise sein müsste war mir schon klar, nur an der Umsetzung hapert es leider.

Gruß
Mitglied: SystemDown
SystemDown 29.11.2016 um 06:52:29 Uhr
Goto Top
Hallo,

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
Mitglied: HLeiske
HLeiske 28.05.2019 aktualisiert um 10:33:24 Uhr
Goto Top
Hi,

vielen Dank für deine Mühe und sorry, dass ich mich mit minimalem Delay melde (ist bei meinen Projekten komplett untergegangen weil es auch nicht mit Prio 1 behaftet war) aber leider ist das scheinbar noch nicht das was ich suche, da ich die pfade bei ca. 2k unterordnern nicht manuell setzen mag face-smile

Vielen Dank noch mal