thomas77
Goto Top

Mehrfaches umbenennen per Batch - ich dreh bald durch

Hallo Leute, vielleicht könnt ihr mir helfen.
Folgendes Problem:

Es handelt sich um eine Bildersammlung für Artikel eines Versandunternehmens.

Im Ordner c:\Bilder sind etwa 2500 Bilder die täglich erweitert werden:

12_1.jpg
456_1.jpg
456_2.jpg
1589_1.jpg
1589_2.jpg
1589_3.jpg
2456.jpg
2401_1.jpg
789.jpg

usw.

die ersten Stellen sind die Artikelnummer und die Stellen nach dem Unterstrich geben an das von dem Artikel Bilder mit mehreren Ansichten existieren. Täglich werden die Bilder erweitert aber nicht der Reihe nach, d.h. ich mach heute Bilder vom Artikel 1589 und morgen vom 1456.

Nun ist es notwendig geworden den Bildernamen noch eine Zeichenfolge vorzustellen, die in einer Excel Tabelle abgelegt sind. Die Tabelle hat zwei Spalten. In Spalte A steht die Artikelnummer wie die Bilder im Ordner genannt wurden (Zeichenfolge vor dem Unterstrich) und in Spalte B steht die Textfolge die nun noch davor soll im Format : H7-1235-4895 (Bsp.)

Das Ergebnis wäre dann in etwa:

K1-4568-7895_12_1.jpg
H7-1235-4895_1589_1.jpg
H7-1235-4895_1589_2.jpg
H7-1235-4895_1589_2.jpg
G4-4523-5896_456_1.jpg
G4-4523-5896_456_2.jpg

usw.


Ich bin mit der Lösung ehrlich gesagt momentan komplett überfordert.
Hat von euch vielleicht jemand kurz Zeit sich dieser Problematik anzunehmen ?

Wäre echt Spitze !

Danke

MfG
Thomas

Content-Key: 80957

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

Printed on: April 25, 2024 at 23:04 o'clock

Member: miniversum
miniversum Feb 17, 2008 at 19:16:54 (UTC)
Goto Top
Ich geh jetz tmal davon aus das du die Exceldatei als csv Datei exportieren kannst die dann das folgende Format hat:
Artikelnummer;Code
Also z.B.
4568;K1
1235;H7
4523;G4
Dann sollte es so gehen:
@echo off
set "verz=C:\Bilder"
set "codefile=C:\Bilder\Nummernundbuchstaben.csv"

FOR /F "delims=" %%f in ('dir /b "%verz%"') do (
FOR /F "tokens=1 delims=_" %%n in ('echo %%~nf') do (
FOR /F "tokens=1,2 delims=;" %%a in ('type "%codefile%"') do (
if [%%a] equ [%%n] (
ren "%%f" "%%b-%%~nxf"
)
)
)
)

Bitte erst an Dummydaten testen. Ist von mir ungetestet hingeschrieben!
miniversum
Member: Thomas77
Thomas77 Feb 17, 2008 at 19:22:42 (UTC)
Goto Top
Hallo miniversum,

Danke das du dir so spät noch Zeit nimmst.

Ich speichere also deinen code unter z.b. umbenennen.bat und lege das ins Verzeichnis Bilder und führe das aus ?

Entschuldige, aber bin totaler Anfänger auf dem Gebiet !

Gruß
Thomas
Member: miniversum
miniversum Feb 17, 2008 at 19:36:37 (UTC)
Goto Top
Ja genau.
Wo du den bat datei speicherst ist eigentlich egal.
Du mußt nur diese Zeilen anpassen:
set "verz=C:\Bilder"
set "codefile=C:\Bilder\Nummernundbuchstaben.csv"

miniversum
Member: Thomas77
Thomas77 Feb 17, 2008 at 20:00:55 (UTC)
Goto Top
So. Habs jetzt mal probiert. geht nicht. Hab Im Bilderordner die bat liegen und die csv Datei. Hab die
set- Befehle angepasst. Die bat macht auch was. Die neue Datei hat auch die Zeichenfolge wie gewünscht aber die zuordnung von Artikelnummer zu Zeichenfolge stimmt nicht. Folgendes solltest du noch wissen: die csv liste ist vollständig aber die Bilderdaten noch nicht. Die hat also Lücken. Kann dort der Fehler liegen ?
Member: miniversum
miniversum Feb 17, 2008 at 20:27:15 (UTC)
Goto Top
Ich habe es grade bei mir getestet. Da gehts.
Für bitte mal diese Datei aus:
@echo off
set "verz=C:\Bilder"  
set "codefile=C:\Bilder\Nummernundbuchstaben.csv"  

FOR /F "delims=" %%f in ('dir /b "%verz%"') do (  
FOR /F "tokens=1 delims=_" %%n in ('echo %%~nf') do (  
FOR /F "tokens=1,2 delims=;" %%a in ('type "%codefile%"') do (  
if [%%a] equ [%%n] (
echo Umbenennen: "%%f" in "%%b-%%~nxf"   Zuordnung: [%%a] oder [%%n] zu Code [%%b]>>log.txt  
REM ren "%%f" "%%b-%%~nxf"  
)
)
)
)
Es sollte nichts umbenant werden sondern eine Datei log.txt erstellt werden die ungefär so aussieht:
Umbenennen: "4568_5678.jpg" in "K1-4568_5678.jpg" Zuordnung: [4568] oder [4568] zu Code [K1]
Umbenennen: "1235_5678.jpg" in "H7-1235_5678.jpg" Zuordnung: [1235] oder [1235] zu Code [H7]
Umbenennen: "4523_5678.jpg" in "G4-4523_5678.jpg" Zuordnung: [4523] oder [4523] zu Code [G4]
So kannst du zuordnen ob die Codierung mit den Zahlenweiten richtig verglichen wird.

miniversum
Member: Thomas77
Thomas77 Feb 17, 2008 at 20:47:29 (UTC)
Goto Top
Hallo,

die log datei wird nicht angelegt. Kann ich dir mal die Daten per PN schicken, da kommst du vielleicht sofort drauf .
Member: miniversum
miniversum Feb 17, 2008 at 21:09:51 (UTC)
Goto Top
Ja kannst du mal machen. Ich kann es hier bei mir nicht nachvollziehen. bei mir gehts
Member: Biber
Biber Mar 01, 2008 at 13:49:43 (UTC)
Goto Top
Moin Thomas77,

wie ist denn der Status Deines Beitrags?
Seid Ihr zu einer Lösung gekommen?

Grüße
Biber
Member: Thomas77
Thomas77 Mar 02, 2008 at 13:09:51 (UTC)
Goto Top
Hallo Biber,

ja ich konnte das Problem dank der großartigen Hilfe von miniversum lösen !

Danke und weg