Probleme beim umbennenen der Dateierweiterung
Hallo...
als erstes möchte ich mal sagen das dies hier ein richtig gutes Forum ist, dass mir schon oft geholfen hat.
Jetzt habe ich aber ein Problem, bei dem ich einfach nicht weiterkomme. Ich soll bei mehreren Dateien die im 8+3 Format von einem Programm ausgegeben werden und von einem andern Programm gelesen werden die Dateierweiterung, also die 3 Buchstaben nach dem Punkt umbenennen. Jetzt bitte nicht gleich los brüllen, das umbenennen von Dateien ist hier doch schon abgewickelt und ich soll doch erstmal lernen mit einem Forum umzugehen. Denn mein Problem ist nicht das eigentliche umbenennen. Sondern, das es ich hierbei 1 um die Dateierweiterung handelt und 2. das ich die Dateierweiterung in fortlaufende Nummern umbenennen soll. Das heißt und jetzt kommen wir zu meinem eigentlichen Problem. Das eine Programm gibt die eine Dateien aus im 8+3 Typ also z.B. ab210106.xyz , ac210106.xyz , ad210106.xyz .... raus und ich soll nun alle Dateien die in einem Ordner sind der Reihe nach in 210106.001 , 210106.002 , 210106.003 ... umbenennen. Das soll dann eine Batch-Datei machen. Nun ist mein Problem, dass das Programm immer an die höchste Zahl anreihen soll. Also alle folgenden Dateien sollen als Dateierweiterung immer an der höchsten zahl anhängen. Es kann aber sein das ältere Dateien die nicht mehr gebraucht werden gelöscht werden, d.h. Das zwischendrin auf einmal Dateien fehlen können. Also z.b bis .043 sind alle da und dann geht es aber erst wieder mit der .052 weiter. Trotzdem soll die Batch-Datei gewährleisten, dass bei der höchsten Zahl weiter gemacht wird bis .999 und dann wieder von vorne. Ich hoffe ich habe mich halbwegs klar ausgedrückt, was mein Problem ist.
Jetzt möchte ich noch was zu den weiteren Daten sagen. Also es handelt sich um einen Server auf WindowsNT Basis und es soll keine weiter Software installiert werden (warum auch immer?!?) und der DAU soll nur einen einen Knopf drücken um die Dateien umzubenennen.
Vielen Dank schon mal
Bis neulich...
als erstes möchte ich mal sagen das dies hier ein richtig gutes Forum ist, dass mir schon oft geholfen hat.
Jetzt habe ich aber ein Problem, bei dem ich einfach nicht weiterkomme. Ich soll bei mehreren Dateien die im 8+3 Format von einem Programm ausgegeben werden und von einem andern Programm gelesen werden die Dateierweiterung, also die 3 Buchstaben nach dem Punkt umbenennen. Jetzt bitte nicht gleich los brüllen, das umbenennen von Dateien ist hier doch schon abgewickelt und ich soll doch erstmal lernen mit einem Forum umzugehen. Denn mein Problem ist nicht das eigentliche umbenennen. Sondern, das es ich hierbei 1 um die Dateierweiterung handelt und 2. das ich die Dateierweiterung in fortlaufende Nummern umbenennen soll. Das heißt und jetzt kommen wir zu meinem eigentlichen Problem. Das eine Programm gibt die eine Dateien aus im 8+3 Typ also z.B. ab210106.xyz , ac210106.xyz , ad210106.xyz .... raus und ich soll nun alle Dateien die in einem Ordner sind der Reihe nach in 210106.001 , 210106.002 , 210106.003 ... umbenennen. Das soll dann eine Batch-Datei machen. Nun ist mein Problem, dass das Programm immer an die höchste Zahl anreihen soll. Also alle folgenden Dateien sollen als Dateierweiterung immer an der höchsten zahl anhängen. Es kann aber sein das ältere Dateien die nicht mehr gebraucht werden gelöscht werden, d.h. Das zwischendrin auf einmal Dateien fehlen können. Also z.b bis .043 sind alle da und dann geht es aber erst wieder mit der .052 weiter. Trotzdem soll die Batch-Datei gewährleisten, dass bei der höchsten Zahl weiter gemacht wird bis .999 und dann wieder von vorne. Ich hoffe ich habe mich halbwegs klar ausgedrückt, was mein Problem ist.
Jetzt möchte ich noch was zu den weiteren Daten sagen. Also es handelt sich um einen Server auf WindowsNT Basis und es soll keine weiter Software installiert werden (warum auch immer?!?) und der DAU soll nur einen einen Knopf drücken um die Dateien umzubenennen.
Vielen Dank schon mal
Bis neulich...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 25015
Url: https://administrator.de/forum/probleme-beim-umbennenen-der-dateierweiterung-25015.html
Ausgedruckt am: 09.04.2025 um 08:04 Uhr
18 Kommentare
Neuester Kommentar
Hallo,
das ist mit einer Batch doch zu lösen.
1. Verzeichnis mit den numerischen Extensions umgekehrt sortieren
mit dir /b /oe Verzeichnis also
2. Verzeichnis zum mit ursprünglichen Extensions ändern
for /f %%i in ('dir /b /oe Verzeichnis_neu') do call:ext_num %%i
:ext_num
set i = 0
set x=%1
set y=%x:~9, 3%
:num
for /f %%k in ('dir /b Verzeichnis_alt') do (
set /a y=%y%+1
set z = %1
ren %%i Verzeichnis_neu\%z:~3, 7%%y%
)
goto EOF
Konnte das jetzt nicht testen, aber die Richtung müßte stimmen.
Ich bin hier von 2 Verzeichnissen ausgegangen, ansonsten anpassen.
MfG maneich
das ist mit einer Batch doch zu lösen.
1. Verzeichnis mit den numerischen Extensions umgekehrt sortieren
mit dir /b /oe Verzeichnis also
2. Verzeichnis zum mit ursprünglichen Extensions ändern
for /f %%i in ('dir /b /oe Verzeichnis_neu') do call:ext_num %%i
:ext_num
set i = 0
set x=%1
set y=%x:~9, 3%
:num
for /f %%k in ('dir /b Verzeichnis_alt') do (
set /a y=%y%+1
set z = %1
ren %%i Verzeichnis_neu\%z:~3, 7%%y%
)
goto EOF
Konnte das jetzt nicht testen, aber die Richtung müßte stimmen.
Ich bin hier von 2 Verzeichnissen ausgegangen, ansonsten anpassen.
MfG maneich
Hallo RippchenMitKraut
Wenn Du, so wie ich, mit Batchen nicht so der Guru bist habe ich Dir ein Tool, dass Dir ganz bestimmt weiter hilft.
Es nennt sich RenameMaster. Fortlaufende nummerierung mit der Rename-Funktion ist möglich. Du kannst sowohl vor oder nach dem Punkt ändern.
Hier der Link zu Download: http://www.snapfiles.com/get/renamemaster.html
Ein Feedback wäre nett.
Gruss
Marc
Wenn Du, so wie ich, mit Batchen nicht so der Guru bist habe ich Dir ein Tool, dass Dir ganz bestimmt weiter hilft.
Es nennt sich RenameMaster. Fortlaufende nummerierung mit der Rename-Funktion ist möglich. Du kannst sowohl vor oder nach dem Punkt ändern.
Hier der Link zu Download: http://www.snapfiles.com/get/renamemaster.html
Ein Feedback wäre nett.
Gruss
Marc
Hallo RippchenMitKraut
Habe eben festgestellt, dass ich Dir eine "falschen" Link gesendet habe.
Das Programm RenameMaster kann zwar viel; Extensions hochzählen aber nicht.
Mit "Bulk Rename Utility" sollte es aber möglich sein. Hier der Link.
http://www.bulkrenameutility.co.uk/Screenshots.php
Gruss
Marc
Habe eben festgestellt, dass ich Dir eine "falschen" Link gesendet habe.
Das Programm RenameMaster kann zwar viel; Extensions hochzählen aber nicht.
Mit "Bulk Rename Utility" sollte es aber möglich sein. Hier der Link.
http://www.bulkrenameutility.co.uk/Screenshots.php
Gruss
Marc
Hallo,
for /f "tokens=2 delims=." %%i in ('dir /b /o-e Verzeichnis_neu') do call:ext_num %%i
goto eof
:ext_num
set y=%1
for /f "tokens=1,2 delims=." %%k in ('dir /b /od Verzeichnis_alt') do (
if %y%==999 set y=0
set /a y=%y%+1
set z = %%k
move /y Verzeichnis_alt\%%k.%%l Verzeichnis_neu\%z:~3%.%y%
)
goto eof
Teste das mal.
MfG maneich
for /f "tokens=2 delims=." %%i in ('dir /b /o-e Verzeichnis_neu') do call:ext_num %%i
goto eof
:ext_num
set y=%1
for /f "tokens=1,2 delims=." %%k in ('dir /b /od Verzeichnis_alt') do (
if %y%==999 set y=0
set /a y=%y%+1
set z = %%k
move /y Verzeichnis_alt\%%k.%%l Verzeichnis_neu\%z:~3%.%y%
)
goto eof
Teste das mal.
MfG maneich
Also, RMK,
ich habe keine NT-Installation mehr im näheren Umkreis, und habe nur noch vage Vermutungen über die Unterschiede im CMD.exe-verhalten unter NT und W2000/XP.
Aber wenn die NT-CMD.exe
- ein Set /A verarbeiten, also schon rechnen kann (Test am Prompt: "Set /a 17+4")
- die Vergleichsoperatoren LEQ und GTR schon kennt (Test: "if 1 LEQ 3 echo hallo")
...dann wäre mein nächster Versuch:
...
if %n%==999 set /a "n=1"
if %n% LEQ 9 set "cn=00%n%"
If %n% GTR 9 if %n% LEQ 99 set "cn=0%n%
If %n% GTR 99 set "cn=%n%
ren C:.....
HTH Biber
ich habe keine NT-Installation mehr im näheren Umkreis, und habe nur noch vage Vermutungen über die Unterschiede im CMD.exe-verhalten unter NT und W2000/XP.
Aber wenn die NT-CMD.exe
- ein Set /A verarbeiten, also schon rechnen kann (Test am Prompt: "Set /a 17+4")
- die Vergleichsoperatoren LEQ und GTR schon kennt (Test: "if 1 LEQ 3 echo hallo")
...dann wäre mein nächster Versuch:
...
if %n%==999 set /a "n=1"
if %n% LEQ 9 set "cn=00%n%"
If %n% GTR 9 if %n% LEQ 99 set "cn=0%n%
If %n% GTR 99 set "cn=%n%
ren C:.....
HTH Biber