deltamk
Goto Top

Verschieben und Umbenennen mit fortlaufender Nummerierung

Hallo,

ich habe ein kleines Problem und ich bekomme es einfach nicht so hin wie ich es brauche.
Habe schon mehrere Vorschläge aus dem Forum probiert, aber es passt nicht genau zu meinem Problem.

Ich habe in meinem Quellordner c:\testquelle verschiedene Dateien mit der Endung .ABC liegen.

c:\testquelle
fdggfgh.ABC
3ed556t.ABC
3456fsf.ABC

diese solle per Bat oder cmd in einen anderen Ordner verschoben werden (c:\testziel) und dabei umbenannt werden.
Der Dateiname soll immer mit AAAAA beginnen und danach immer mit einer dreistelligen Nummer mit führenden Nullen bezeichnet werden. Die Dateiendung soll gleich der Quelldatei sein:

c:\testziel
AAAAA001.ABC
AAAAA002.ABC
AAAAA003.ABC

Wichtig wäre noch, das bei dem umbenennen geprüft wird, ob es in dem Ordner schon eine Datei mit dem Namen gibt und sonst mit der nächsten Nummer fortfährt. In dem o.g. Beispiel wäre das z.B. dann bei dem nächsten Aufruf die AAAAA004.ABC. Dies sollte zwar nicht vorkommen und die Datei in der Zwischenzeit längst abgeholt werden, aber es kann vorkommen das noch Dateien vom letzten Aufruf vorhanden sind.

Ist das mit einem Batch machbar? Wäre super wenn wir das hinkriegen.

Vielen Dank schonmal.

Gruß

Content-ID: 204437

Url: https://administrator.de/forum/verschieben-und-umbenennen-mit-fortlaufender-nummerierung-204437.html

Ausgedruckt am: 23.12.2024 um 05:12 Uhr

Endoro
Endoro 04.04.2013 um 18:54:16 Uhr
Goto Top
Hallo deltamk,

hast du schon was versucht, woran man anknüpfen könnte?

Gruss!
deltamk
deltamk 04.04.2013 um 18:58:48 Uhr
Goto Top
Moin,

das war ja eine Blitzantwort. Ich habe mal das aus diesem Thread probiert Datei kopieren und anschliesend fortlaufend nummerieren .

Das hat aber nicht so gepasst. Vor allem weiß ich nicht wie er alle Dateien des Quellordners nimmt.
miniversum
miniversum 04.04.2013 um 19:12:14 Uhr
Goto Top
Hallo,

Ungetestet funktioniert das ungefär so:

@echo off
set num=1
FOR /F "delims=" %%i in ('dir /b c:\testquelle\*.ABC') do call:MoveRename "%%i"  
goto:eof

:MoveRename
set numstr=000%num%
set numstr=%numstr:~-3%
if not exist c:\testziel\AAAAA%numstr%.ABC (
move "c:\testquelle\%~1" c:\testziel\AAAAA%numstr%.ABC  
goto:eof
)
set /a num=num+1
goto:MoveRename
bastla
bastla 04.04.2013 aktualisiert um 20:46:19 Uhr
Goto Top
Hallo deltamk!
wie er alle Dateien des Quellordners nimmt.
Indem Du zB
set "Log=Logfilename.log"
durch
set "Log=*.ABC"
ersetzt oder gleich
for %%i in ("%Quelle%\*.ABC") do ...
verwendest?

Grüße
bastla