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, 4189 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

Mit freundlichen Grüßen
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
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst 1 PDF duplizieren und umbenennen nach CSV mittels Batch (5)

Frage von Kalisser zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (10)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...