Frage zur Größenänderung und fortlaufenden Nummerierung von Bildern
Guten Tag,
wie oben schon beschrieben möchte ich eine Größenänderung bei meinen Bildern durchführen und daraufhin sollen sie fortlaufend nummeriert werden. Dafür habe ich mir die Tools nconvert und any#rename zur Hilfe geholt.
Mit ein paar Beispielen habe ich darauf hin eine Batch entwickelt, welche Bilder aus dem Ordner "new" in zwei verschiedene Größen umwandelt und daraufhin in zwei verschiedene Ordner kopiert, wo sie dann umbenannt werden sollen. Die Batch ließt außerdem zuvor den vorhanden Counter aus.
--> soweit alles ok.
Nun kommt mein Problem die großen Bilder werden fortlaufend mit 00001, 00002 usw. nummeriert. Zur Probe ob das Auslesen des Counters funktioniert, habe ich immer 7 Bilder in den Ordner "new" hereingepackt und sie umgewandelt. Nach zweimal bin ich bei 00014 gelandet - funktioniert.
Als ich jedoch nochmal 7 Bilder umwandeln wollte, kam ich nicht bei 21 sondern bei 00019 raus. Das heisst das Bilder die vorher im Ordner waren überschrieben wurden.
Nach meiner Recherche hat es irgendwas mit dem Octalsystem zu tun. Ich konnte jedoch die Erklärungen zur Beseitigung des Problems nicht umsetzten.
Deshalb: Wie bekomme ich es hin meine Bilder fortlaufend ohne Überschreibungen zu Nummerieren?
Vielen Dank für eure Hilfe.
Hier mein Batchtext:
rem ----------------------------------------------------------------------
:: CONFIG
rem ----------------------------------------------------------------------
:: directory path of NCONVERT
set NCONVERT=..\nconvert.exe
:: name of subdirectory where the images will be created.
:: no slashes, please - mkdir doesn't like it.
set subdir=..\finish
:: parameters for NCONVERT (image size + quality + outputfile)
:: set PARAMS1=-resize 800 600 -q 100 -o "..\%subdir%\800x600_%%.jpg"
set PARAMS1=-resize 400 300 -q 100 -o "%subdir%\%%.jpg"
set PARAMS2=-resize 100 75 -q 100 -o "%subdir%\t_%%.jpg"
:: STOP - thats all to configure
set LINE=-------------------------------------------------------------------------------
rem ----------------------------------------------------------------------
:: before we start: some checks...
rem ----------------------------------------------------------------------
echo %LINE%
echo create pictures 4 web - V1.1
echo %LINE%
if exist %NCONVERT% goto CHECKPARAM
goto ERROR01
:CHECKPARAM
if "%1"=="" goto USAGE
:CHECKINFILE
if exist %1 goto COPY
goto ERROR02
rem ----------------------------------------------------------------------
:: let's go!
rem ----------------------------------------------------------------------
:COPY
echo -- creating directory "%subdir%" ...
mkdir %subdir% >nul
:: copy %1 %subdir%
:: cd %subdir%
echo -- converting with [%PARAMS1%]
%NCONVERT% %PARAMS1% %1
echo -- converting with [%PARAMS2%]
%NCONVERT% %PARAMS2% %1
cd..
mkdir thumbnails
copy "finish\t_*.jpg" "thumbnails"
cd thumbnails
del ..\finish\t_*.jpg
:Counter wird ermittelt
@for /f "delims=. " %%i IN ('Dir /B /ON "..\view\*.jpg"') DO set Counter= %%i
:Counter wird erhöht
Set /a nz = %Counter%+1
cd ..
:anyrename wird Kopiert
Copy /y "any#rename.exe" "thumbnails"
Copy /y "any#rename.exe" "finish"
:Quell-Verzeichnis wird angewählt und Nummerierung durchgeführt
cd thumbnails
any#rename *.jpg t_ %nz% .jpg
cd ..\finish
any#rename *.jpg "" %nz% .jpg
cd ..
:Dateien werden auf Ziel kopiert
Copy /y "finish\*.jpg" "view"
mkdir small
Copy /y "thumbnails\*.jpg" "small"
rmdir finish /s /q
rmdir thumbnails /s /q
del new\*.jpg /s /q
del thumbnails\*exe /s /q
echo %0 was terminated.
echo press any key...
pause >nul
echo %LINE%
goto ENDE
rem ----------------------------------------------------------------------
:: errors
rem ----------------------------------------------------------------------
:ERROR01
echo ERROR:
echo The following executable was not found:
echo %NCONVERT%
echo Correct the path please - therefore edit the following file:
echo "%0"
goto USAGE
:ERROR02
echo ERROR: The file "%1" was not found!
goto USAGE
:USAGE
echo.
echo SYNTAX: %0 [imagefile(s)]
echo press any key...
pause >nul
exit 1
rem ----------------------------------------------------------------------
:: the end of all
rem ----------------------------------------------------------------------
wie oben schon beschrieben möchte ich eine Größenänderung bei meinen Bildern durchführen und daraufhin sollen sie fortlaufend nummeriert werden. Dafür habe ich mir die Tools nconvert und any#rename zur Hilfe geholt.
Mit ein paar Beispielen habe ich darauf hin eine Batch entwickelt, welche Bilder aus dem Ordner "new" in zwei verschiedene Größen umwandelt und daraufhin in zwei verschiedene Ordner kopiert, wo sie dann umbenannt werden sollen. Die Batch ließt außerdem zuvor den vorhanden Counter aus.
--> soweit alles ok.
Nun kommt mein Problem die großen Bilder werden fortlaufend mit 00001, 00002 usw. nummeriert. Zur Probe ob das Auslesen des Counters funktioniert, habe ich immer 7 Bilder in den Ordner "new" hereingepackt und sie umgewandelt. Nach zweimal bin ich bei 00014 gelandet - funktioniert.
Als ich jedoch nochmal 7 Bilder umwandeln wollte, kam ich nicht bei 21 sondern bei 00019 raus. Das heisst das Bilder die vorher im Ordner waren überschrieben wurden.
Nach meiner Recherche hat es irgendwas mit dem Octalsystem zu tun. Ich konnte jedoch die Erklärungen zur Beseitigung des Problems nicht umsetzten.
Deshalb: Wie bekomme ich es hin meine Bilder fortlaufend ohne Überschreibungen zu Nummerieren?
Vielen Dank für eure Hilfe.
Hier mein Batchtext:
rem ----------------------------------------------------------------------
:: CONFIG
rem ----------------------------------------------------------------------
:: directory path of NCONVERT
set NCONVERT=..\nconvert.exe
:: name of subdirectory where the images will be created.
:: no slashes, please - mkdir doesn't like it.
set subdir=..\finish
:: parameters for NCONVERT (image size + quality + outputfile)
:: set PARAMS1=-resize 800 600 -q 100 -o "..\%subdir%\800x600_%%.jpg"
set PARAMS1=-resize 400 300 -q 100 -o "%subdir%\%%.jpg"
set PARAMS2=-resize 100 75 -q 100 -o "%subdir%\t_%%.jpg"
:: STOP - thats all to configure
set LINE=-------------------------------------------------------------------------------
rem ----------------------------------------------------------------------
:: before we start: some checks...
rem ----------------------------------------------------------------------
echo %LINE%
echo create pictures 4 web - V1.1
echo %LINE%
if exist %NCONVERT% goto CHECKPARAM
goto ERROR01
:CHECKPARAM
if "%1"=="" goto USAGE
:CHECKINFILE
if exist %1 goto COPY
goto ERROR02
rem ----------------------------------------------------------------------
:: let's go!
rem ----------------------------------------------------------------------
:COPY
echo -- creating directory "%subdir%" ...
mkdir %subdir% >nul
:: copy %1 %subdir%
:: cd %subdir%
echo -- converting with [%PARAMS1%]
%NCONVERT% %PARAMS1% %1
echo -- converting with [%PARAMS2%]
%NCONVERT% %PARAMS2% %1
cd..
mkdir thumbnails
copy "finish\t_*.jpg" "thumbnails"
cd thumbnails
del ..\finish\t_*.jpg
:Counter wird ermittelt
@for /f "delims=. " %%i IN ('Dir /B /ON "..\view\*.jpg"') DO set Counter= %%i
:Counter wird erhöht
Set /a nz = %Counter%+1
cd ..
:anyrename wird Kopiert
Copy /y "any#rename.exe" "thumbnails"
Copy /y "any#rename.exe" "finish"
:Quell-Verzeichnis wird angewählt und Nummerierung durchgeführt
cd thumbnails
any#rename *.jpg t_ %nz% .jpg
cd ..\finish
any#rename *.jpg "" %nz% .jpg
cd ..
:Dateien werden auf Ziel kopiert
Copy /y "finish\*.jpg" "view"
mkdir small
Copy /y "thumbnails\*.jpg" "small"
rmdir finish /s /q
rmdir thumbnails /s /q
del new\*.jpg /s /q
del thumbnails\*exe /s /q
echo %0 was terminated.
echo press any key...
pause >nul
echo %LINE%
goto ENDE
rem ----------------------------------------------------------------------
:: errors
rem ----------------------------------------------------------------------
:ERROR01
echo ERROR:
echo The following executable was not found:
echo %NCONVERT%
echo Correct the path please - therefore edit the following file:
echo "%0"
goto USAGE
:ERROR02
echo ERROR: The file "%1" was not found!
goto USAGE
:USAGE
echo.
echo SYNTAX: %0 [imagefile(s)]
echo press any key...
pause >nul
exit 1
rem ----------------------------------------------------------------------
:: the end of all
rem ----------------------------------------------------------------------
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 163872
Url: https://administrator.de/forum/frage-zur-groessenaenderung-und-fortlaufenden-nummerierung-von-bildern-163872.html
Ausgedruckt am: 01.05.2025 um 19:05 Uhr
6 Kommentare
Neuester Kommentar
Hallo JamesDuttels und willkommen im Forum!
Wenn die Nummer immer 6 Stellen hat, versuch es mit diesen beiden Zeilen:
- gleichwertig wäre natürlich:
oder gleich
Grüße
bastla
P.S.: So richtig "programmunabhängig" ist es aber auch nicht, wenn Du "nconvert" und "any#rename" benötigst ...
[Edit] Schreibweise der Zeile 2 etwas verkürzt [/Edit]
Wenn die Nummer immer 6 Stellen hat, versuch es mit diesen beiden Zeilen:
set /a nz=1%Counter%+1
set /a nz-=1000000
set /a nz=1%Counter%+1-1000000
set /a nz=1%Counter%-999999
bastla
P.S.: So richtig "programmunabhängig" ist es aber auch nicht, wenn Du "nconvert" und "any#rename" benötigst ...
[Edit] Schreibweise der Zeile 2 etwas verkürzt [/Edit]
Hallo JamesDuttels!
Bei näherer Betrachtung überrascht das dann doch weniger - in Deinen "
auf
damit nicht am Beginn des Variableninhaltes ein Leerzeichen steht (am Ende wär's auch unnötig, aber in diesem Fall egal) ...
Grüße
bastla
Bei näherer Betrachtung überrascht das dann doch weniger - in Deinen "
set
"-Anweisungen gibt es unnötige Leerzeichen; ändere daher die Zeile@FOR /f "delims=. " %%i IN ('Dir /B /ON "..\view\*.jpg"') DO set Counter= %%i
@FOR /f "delims=. " %%i IN ('Dir /B /ON "..\view\*.jpg"') DO set Counter=%%i
Grüße
bastla