Gleichen Basisdateinamen von 3 Dateien finden und dann die Dateien verschieben
Ich hoffe sehr auf Hilfe mit der ich etwas weiter komme.
Es sollen ca. 50000 Dateien in Windows in einen Ordner verschoben werden.
Die Ordner sind alle in einer Netzfreigabe im Windows 10. In 2 Ordnern sind 3 Dateien mit
gleichem Basisdateinamen wobei eine dieser Dateien keine Dateiendung hat.
Verschoben werden sollen nicht alle, sondern nur die Dateien,
die auch wirklich den gleichen Namen haben.
Beispiel:
Ordner QuelleA enthält die Dateien
Test01.rta und Test02.rta
Ordner QuelleB die Dateien
Test01.ftb und Test01 und Test02.ftb
Ausgangspunkt für die Prüfung ist QuelleA.
Inhalt von QuelleA ist sozusagen die Dateiliste.
Von Dateinamen Test01 sind 3 Dateien vorhanden, die dann in den Ordner ZielA verschoben werden sollen.
Die rta Datei aus Quelle A soll allerdings zuletzt im Zielordner ankommen.
Mit xcopy und robocopy habe ich erfolglos probiert. Ich würde gerne den Ordnerinhalt mit den rta Dateien als Dateiliste verwenden.
Ich habe leider keine Idee mehr wie ich das umsetzen kann und würde mich über Vorschläge sehr freuen.
Schon mal ein großes Danke für Tipps.
Es sollen ca. 50000 Dateien in Windows in einen Ordner verschoben werden.
Die Ordner sind alle in einer Netzfreigabe im Windows 10. In 2 Ordnern sind 3 Dateien mit
gleichem Basisdateinamen wobei eine dieser Dateien keine Dateiendung hat.
Verschoben werden sollen nicht alle, sondern nur die Dateien,
die auch wirklich den gleichen Namen haben.
Beispiel:
Ordner QuelleA enthält die Dateien
Test01.rta und Test02.rta
Ordner QuelleB die Dateien
Test01.ftb und Test01 und Test02.ftb
Ausgangspunkt für die Prüfung ist QuelleA.
Inhalt von QuelleA ist sozusagen die Dateiliste.
Von Dateinamen Test01 sind 3 Dateien vorhanden, die dann in den Ordner ZielA verschoben werden sollen.
Die rta Datei aus Quelle A soll allerdings zuletzt im Zielordner ankommen.
Mit xcopy und robocopy habe ich erfolglos probiert. Ich würde gerne den Ordnerinhalt mit den rta Dateien als Dateiliste verwenden.
Ich habe leider keine Idee mehr wie ich das umsetzen kann und würde mich über Vorschläge sehr freuen.
Schon mal ein großes Danke für Tipps.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 400159
Url: https://administrator.de/forum/gleichen-basisdateinamen-von-3-dateien-finden-und-dann-die-dateien-verschieben-400159.html
Ausgedruckt am: 02.06.2025 um 13:06 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @devbaum:
auch die bei denen keine 2 Dateien mit gleichen Basisnamen in srcB vorhanden sind.
OK, da hatte ich dich nicht richtig verstanden, dass es eine Voraussetzung ist, dass alle 3 Dateien vorhanden sein müssen.auch die bei denen keine 2 Dateien mit gleichen Basisnamen in srcB vorhanden sind.
Die Dateien in srcB werden auch gar nicht erst verschoben.
Dabei kann ich nicht helfen. Keine Ahnung wie du die Pfadangabe gemacht hast. Kenne ja nur deine Pseudopfade. Sind alle 3 Pfade absolut angegeben?@echo off &setlocal
set "srcA=QuelleA"
set "srcB=QuelleB"
set "dstA=ZielA"
for %%i in ("%srcA%\*.rta") do (
if exist "%srcB%\%%~ni" if exist "%srcB%\%%~ni.ftb" (
move "%srcB%\%%~ni" "%dstA%\"
move "%srcB%\%%~ni.ftb" "%dstA%\"
move "%%~fi" "%dstA%\"
)
)
Die beiden exist mußte ich in eine Zeile setzen.
Die sind doch auch bei mir in einer Zeile. Keine Ahnung was du meinst.Gibt es dann evtl. ein Risiko bei der Ausführung vom Batch auf das ich achten muß?
Musst du testen. Mach ein Backup, aber das sollte eigentlich eine Selbstverständlichkeit sein. Generelles Risiko ist, dass du Dateien verschiebst, die noch gar nicht fertig geschrieben wurden. Aber auch das musst du selbst wissen, ob Dateien während der Laufzeit des Scripts erstellt werden oder nicht.Ist es immer sicher, dass das dritte move auch wirklich erst nach Ende vom zweiten ausgeführt wird?
So steht es im Code. Der Kommandozeileninterpreter arbeitet die Codezeilen synchron ab.