Batch Datei umbenennen

212N3rD

Cadet 4th Year
Registriert
Juli 2008
Beiträge
70
ich habe bilder im Format:

6stellige Artikelnummer_Text.jpg
123456_Blax_aem_001.jpg
123456_Blax_aem_002.jpg
123456_Blax_Bla_003.jpg
002211_Bla_Bla_001.jpg
.....

möchte diese im folgendem Format:
6stellige Artikelnummer-1.jpg
(bei gleicher Artikelnummer soll statt -1.jpg dann -2.jpg, -3.jpg etc. stehen)
123456-1.jpg
123456-2.jpg
123456-3.jpg

umbenennen ist kein problem nur wie mache ich es dass wenn die 6stellige Artikelnummer-1.jpg schon existiert und es dann nach 6stellige Artikelnummer-2.jpg umbenannt werden soll.
 
Mit einer Variable, die den Wert nach jedem Schleifendurchgang um 1 erhöht.
 
nimm den TotalCommander, da kannst du mit RegularExpressions, Zählern uvm. umbenennen
 
Hi,
es ist ganz einfach sofern du explizit die ersten 6 und die letzte Stelle als neues Dateinamen verwenden möchtest.
Man extrahiert die ersten 6 Stellen und die letzte Stelle, füge alles zusammen und benennt es um.
Den Code als .bat abspeichern und in gleiches Verzeichnis legen wo sich die Dateien befinden.
Das echo vor dem ren entfernen, sofern die Dateiname so aussieht wie du es möchtest.
Code:
@echo off & setlocal enabledelayedexpansion
cls

::---edit
REM Pfad festlegen
set "Verzeichnis=%~dp0"
REM Dateityp festlegen
set "Typ=jpg"
REM die erste/n Stelle/n festlegen
set "eStr=6"
REM die letzte/n Stelle/n festlegen
set "lStr=1"
::---edit-ende

pushd %Verzeichnis% || goto :eof

for /f "delims=" %%i in ('dir /b /a-d "*.%Typ%"') do (
   set DateiName=%%~ni
   echo.
   echo DateiName: !DateiName!
   
   REM die erste und die letzte Stelle extrahieren (sehe variable oben)
   set ErsteStr=!DateiName:~0,%eStr%!
   set LetzteStr=!DateiName:~-%lStr%!
   
   REM zusammenführung
   set NeueDateiName=!ErsteStr!-!LetzteStr!
   echo NeueDateiName: !NeueDateiName!.%Typ%
   echo.-------------------------
   
   REM prüfen ob Datei existiert, sonst um eins erhöhen
   if exist !NeueDateiName!.%Typ% (set /a LetzteStr+=1
   set NeueDateiName=!ErsteStr!-!LetzteStr!)

   REM umbenennen
   echo ren "%%i" !NeueDateiName!.%Typ%
)
pause
 
Zuletzt bearbeitet: (Code Zeile 31,32,33)
super ich danke dir vielmals :)
 
Zurück
Oben