Christian S.: gelöst

Beitrag lesen

Hi nochmal

danke für eure Hilfe.

mein Batch file sieht nun so aus:

@for /f "delims=" %%i in ('dir /ad/s/b') do @call :create %%i %%~ni

:create
@if "%2"=="thumbs" goto :eof

@if not exist %1\thumbs mkdir %1\thumbs
@set /a _counter= 1
@for %%b in (%1\*.jpg) do @call :convert %1 %%b
@goto :eof

:convert

@if %_counter% LSS 100 set _name=0%_counter%
@if %_counter% LSS 10 set _name=00%_counter%

convert "%2" -thumbnail 12000@ -bordercolor snow -background black +polaroid "%1\thumbs%_name%.png"
@set /a _counter+= 1
@set _name=
@goto :eof

Es erstellt für alle Unterordner (rekursiv) einen thumbs Ordner, falls keiner existiert, und der aktuelle Ordner nicht schon "thumbs" heißt und ruft für jedes .jpg den convert Befehl aus, und kopiert es als 001.png - 999.png in den thumbs Ordner.

Das kniffligste war, herauszufinden, dass Leerzeichen auch zu Variablennamen gehören, set _name = ist was anderes als set _name=

:-/

Gruß!