Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mehrfaches umbenennen per Batch - ich dreh bald durch

Frage Entwicklung Batch & Shell

Mitglied: Thomas77

Thomas77 (Level 1) - Jetzt verbinden

17.02.2008, aktualisiert 02.03.2008, 4195 Aufrufe, 9 Kommentare

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
Mitglied: miniversum
17.02.2008 um 20:16 Uhr
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:
<code>@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"
)
)
)
)
<code>
Bitte erst an Dummydaten testen. Ist von mir ungetestet hingeschrieben!
miniversum
Bitte warten ..
Mitglied: Thomas77
17.02.2008 um 20:22 Uhr
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
Bitte warten ..
Mitglied: miniversum
17.02.2008 um 20:36 Uhr
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
Bitte warten ..
Mitglied: Thomas77
17.02.2008 um 21:00 Uhr
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 ?
Bitte warten ..
Mitglied: miniversum
17.02.2008 um 21:27 Uhr
Ich habe es grade bei mir getestet. Da gehts.
Für bitte mal diese Datei aus:
01.
@echo off 
02.
set "verz=C:\Bilder" 
03.
set "codefile=C:\Bilder\Nummernundbuchstaben.csv" 
04.
 
05.
FOR /F "delims=" %%f in ('dir /b "%verz%"') do ( 
06.
FOR /F "tokens=1 delims=_" %%n in ('echo %%~nf') do ( 
07.
FOR /F "tokens=1,2 delims=;" %%a in ('type "%codefile%"') do ( 
08.
if [%%a] equ [%%n] ( 
09.
echo Umbenennen: "%%f" in "%%b-%%~nxf"   Zuordnung: [%%a] oder [%%n] zu Code [%%b]>>log.txt 
10.
REM ren "%%f" "%%b-%%~nxf" 
11.
12.
13.
14.
)
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
Bitte warten ..
Mitglied: Thomas77
17.02.2008 um 21:47 Uhr
Hallo,

die log datei wird nicht angelegt. Kann ich dir mal die Daten per PN schicken, da kommst du vielleicht sofort drauf .
Bitte warten ..
Mitglied: miniversum
17.02.2008 um 22:09 Uhr
Ja kannst du mal machen. Ich kann es hier bei mir nicht nachvollziehen. bei mir gehts
Bitte warten ..
Mitglied: Biber
01.03.2008 um 14:49 Uhr
Moin Thomas77,

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

Grüße
Biber
Bitte warten ..
Mitglied: Thomas77
02.03.2008 um 14:09 Uhr
Hallo Biber,

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

Danke und weg
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Alle Ordner bis auf die letzten 3 per Batch löschen (5)

Frage von Stefan2733 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (22)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (19)

Frage von smartino zum Thema Mac OS X ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...

Linux Netzwerk
DHCP IP-vergabe erst nach 1-2 Minuten (11)

Frage von Maik82 zum Thema Linux Netzwerk ...