quercus
Goto Top

Daten kopieren und umbenennen fortlaufend numerisch

Hallo Gemeinde,

eine Frage zu dem Batch code.
Funktion des Codes:
aus C:\test\Ziel werden bestehende *.jpg durchsucht und anhand ihrer nummerierung wird letzte Zahl verwendet als neue Zahl +1 für die neu hinzuzufügenden Dateien, die umbenannt werden.

Folgender fehler taucht hierbei auf:

sobald beim kopiervorgang im bestehenden ordner Ziel die Zahl von einstellig auf zwei-, dreistellig wechselt,
also von 9 auf 10 oder 99auf 100 oder 999 auf 1000.jpg liest die Batch die falsche Zahl aus und gibt entweder 9, 99, oder 999 als nächste Zahl an.

auch können ab der Zahl 9999 keine weiteren nummern über die Batch erstellt werden. Sprich die Zahl 10000 kann nicht als neuer Dateiname beim kopieren verwendet werden.

wie könnte man das lösen? Bräuchte hier hilfe.

die 2 bestehenden Batch snipsel sind von mir soweit zusammen gefügt worden aus Quellen aus dem Internet.

REM Aufgabe:
REM Kopiere alle Dateien aus Quelle nach Ziel
REM und benenne sie dabei fortlaufend numerisch um
REM und behalte den Dateityp bei

REM Lokale Parameter
SET Quelle=C:\test\
SET Ziel=C:\test\Ziel
REM Startwert für die Nummer****
@FOR /f "delims=. " %%i IN ('Dir /B /ON C:\test\Ziel\*.jpg') DO @set Counter=%%i  
@Echo %Counter%
pause

REM Counter wird erhöht
Set  /a Zahl=%Counter%
REM s e t Zahl+=0


REM Wir müssen erst die "Delayed Expansion" einschalten   
SETLOCAL ENABLEDELAYEDEXPANSION

REM Das DIR-Kommando gibt die Dateien in der gewünschten Folge zurück
FOR /F "usebackq tokens=*" %%i IN (`DIR %Quelle% /A:-D /B`) DO (  
	ECHO Alt: %Quelle%\%%i
	REM "Delayed Expansion" per Notation nutzen: Die Variable, die in jedem Durchlauf  
	REM erweitert werden soll, muss in Ausrufezeichen eingefasst sein
	SET /A Zahl=!Zahl!+1
	REM Um die ursprüngliche Dateierweiterung beizubehalten, hier nochmal
	REM derselbe Trick, diesmal mit Zeichenfolgen-Funktion (4 letzte Zeichen)
	SET Zielname=%%i
	ECHO Neu: %Ziel%\!Zahl!!Zielname:~-4!
	ECHO.
	COPY %Quelle%\%%i %Ziel%\!Zahl!!Zielname:~-4!
	ECHO.
	)

REM Referenz:
REM http://www.robvanderwoude.com/variableexpansion.php

Content-ID: 296645

Url: https://administrator.de/contentid/296645

Ausgedruckt am: 25.11.2024 um 02:11 Uhr

Endoro
Endoro 23.02.2016 um 13:14:30 Uhr
Goto Top
Hey,
du zählst im ersten Teil jpg-Dateien und kopierst im zweiten Teil alle möglichen Dateien. Außerdem sortiert 'dir /on' nach dem Namen, nicht etwa numerisch.

Gruß, Endoro