per Batch dateien umbenennen
Ich habe folgendes Problem und möchte dies per BATCH lösen. NICHT PER SOFTWARE WIE JOE etc....
ich habe eine Anzahl von Dateien die eingescannt wurden:
rechnung01020902014.pdf
rechnung01020902015.pdf
rechnung01020902016.pdf
rechnung01020902017.pdf
rechnung01020902018.pdf
rechnung01020902019.pdf
angebot01020902012.pdf
angebot01020902013.pdf
angebot01020902014.pdf
mahnung0102092011.pdf
mahnung0102092012.pdf
mahnung0102092013.pdf
diese befinden sich automatisch alle im selben Verzeichnis.
Eine Batchdatei soll die Dateien durchlaufen und den Textteil beibehalten, aber die Nummer ersetzen. Die Nummer wird automatisch vom Scanner erstellt.
Am Schluß sollte das so aussehen:
rechnung01.pdf
rechnung02.pdf
rechnung03.pdf
rechnung04.pdf
rechnung05.pdf
rechnung06.pdf
angebot01.pdf
angebot03.pdf
angebot03.pdf
mahnung01.pdf
mahnung02.pdf
mahnung03.pdf
Hat hierfür einer eine Lösung per BATCH ?
ich habe eine Anzahl von Dateien die eingescannt wurden:
rechnung01020902014.pdf
rechnung01020902015.pdf
rechnung01020902016.pdf
rechnung01020902017.pdf
rechnung01020902018.pdf
rechnung01020902019.pdf
angebot01020902012.pdf
angebot01020902013.pdf
angebot01020902014.pdf
mahnung0102092011.pdf
mahnung0102092012.pdf
mahnung0102092013.pdf
diese befinden sich automatisch alle im selben Verzeichnis.
Eine Batchdatei soll die Dateien durchlaufen und den Textteil beibehalten, aber die Nummer ersetzen. Die Nummer wird automatisch vom Scanner erstellt.
Am Schluß sollte das so aussehen:
rechnung01.pdf
rechnung02.pdf
rechnung03.pdf
rechnung04.pdf
rechnung05.pdf
rechnung06.pdf
angebot01.pdf
angebot03.pdf
angebot03.pdf
mahnung01.pdf
mahnung02.pdf
mahnung03.pdf
Hat hierfür einer eine Lösung per BATCH ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 112992
Url: https://administrator.de/contentid/112992
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo linkit!
Auch wenn die Frage der Reihenfolge (ich sortiere einfach einmal nach dem Dateinamen) noch nicht geklärt ist, ein Ansatz:
Bitte vorerst nur mit einer Kopie des Verzeichnisses testen ...
Die Nummern werden, entsprechend Deiner Vorlage, zweistellig mit führender Null vergeben - es sollte daher nicht mehr als 99 Dateien eines Typs im Verzeichnis geben. Zu überlegen wäre (nicht nur aus diesem Grund), eine neues Zielverzeichnis zu verwenden, da bei aufeinanderfolgenden Batchläufen auch die bereits umbenannten Dateien nochmals verarbeitet werden müssten ...
Grüße
bastla
Auch wenn die Frage der Reihenfolge (ich sortiere einfach einmal nach dem Dateinamen) noch nicht geklärt ist, ein Ansatz:
@echo off & setlocal
set "Verz=D:\Eingescannte Dateien"
set "Typ=pdf"
pushd "%Verz%"
for %%i in (rechnung angebot mahnung) do for /f %%a in ('dir /b /on /a-d "%%i*.%Typ%" 2^>nul') do call :ProcessFile "%%a" "%%i"
popd
goto :eof
:ProcessFile
set /a Nr=101
:Loop
set "Neu=%~2%Nr:~-2%.%Typ%"
if not exist "%Neu%" goto :RenameIt
set /a Nr+=1
goto :Loop
:RenameIt
ren %1 "%Neu%"
goto :eof
Die Nummern werden, entsprechend Deiner Vorlage, zweistellig mit führender Null vergeben - es sollte daher nicht mehr als 99 Dateien eines Typs im Verzeichnis geben. Zu überlegen wäre (nicht nur aus diesem Grund), eine neues Zielverzeichnis zu verwenden, da bei aufeinanderfolgenden Batchläufen auch die bereits umbenannten Dateien nochmals verarbeitet werden müssten ...
Grüße
bastla