Batch | Bilder automatisch durch nummerieren

Palladin007

assimiliert
Ich hatte mal eine Frage dazu gestellt, wie man Bilder automatisch durch nummeriert.
Das Programm war damals noch recht chaotisch, ich hab es aber mal überarbeitet und den damaligen Fehler korrigiert.

Code:
@echo off

dir /b /s |find /v /c "::" > zahl.txt
for /f %%i in (zahl.txt) do set zahl=%%i
del zahl.txt
set /a zahl-=2

set work=1
:work
if exist %work%-*.jpg (
    set /a work+=1
    goto work
) else (
    goto a
)

:a
set kon=1
for /f %%h in ('dir /b *.jpg') do call :kontroll %%h
goto kon_weiter

:kontroll
if %1==%kon%.jpg (
    if %kon%==%work% goto kon_weiter
    set /a kon+=1
) else (
    set kon=new
    goto :eof
)
goto :eof

:kon_weiter
set zähler=1
for /f "delims=" %%i in ('dir /b *.jpg') do call :name "%%i"
goto name_weiter

:name
ren %1 "%work%-%zähler%.jpg"
set /a zähler+=1
goto :eof

:name_weiter
set zähler=1
for /f "delims=" %%j in ('dir /b *.jpg') do call :name1 "%%j"
goto :eof

:name1
ren "%work%-%zähler%.jpg" "%zähler%.jpg"
set /a zähler=%zähler%+1
goto :eof

Das Programm einfach in den Ordner kopieren, starten und es nummeriert alle JPG-Dateien automatisch durch.

So kann man eine weitere Verarbeitung und z.B. eine Auflistung in eine Art Datenbank mit Batch ermöglichen.

Außerdem kann man so gleiche Dateinamen ermöglichen.
Man muss nur die Nummer und den dazu gehörigen Namen in eine txt speichern und beim exportieren den Original-Namen speichern lassen.

Getestet ist es auf Windows 7
Bisher kann es nur jpg nummerieren, aber wer ein bisschen Ahnung davon hat, kann das leicht in der Datei ändern.
 
Klappt wie es soll!

Hacken an der Sache:
Dein Code ersetzt nur die Dateien mit der Endung .jpg.
Wenn allerdings ein Bild mit der Endung .jpeg dabei ist, versagt es :(

Bisher kann es nur jpg nummerieren, aber wer ein bisschen Ahnung davon hat, kann das leicht in der Datei ändern.

Theoretisch einfach im Code die ganzen acht jpg-Endungen z. B. durch doc ersetzen, wenn man docs durchnummeriert haben will!


Wenn man die durchnummeriet haben will, kann man die ganzen Dateien auch alle makieren -> Rechtsklick -> Umbennen -> Zeile löschen und dann Enter. Dann heissen sie zwar (1).jpg, (2).jpg usw. aber das kann man ja ertragen.

Trotzdem vielen Dank für dein Programm!

Gruß
bastla
 
Das Problem mit der Endung habe ich bereits in einem anderen Programm gelöst, lässt sich aber leicht um bauen.

Aber das mache ich nicht jetzt^^


Und klar kann man das auch anders machen. Ich habe es ja auch geschrieben, damit man es in andere Programme einbinden kann^^


Edit:
Ups, doch nicht so einfach^^
Werd das wohl mit einem kleinen Umweg lösen müssen. Aber ich schaff das :D
 
Zuletzt bearbeitet:
Oben