Stel, in Excel staan de nummers in kolom A en de namen in kolom B, dan kun je met de volgende formule in kolom C van je Excelbestand een UNIX-commandoreeks maken die alle bestanden voor je hernoemt op de manier zoals jij wilt. Hier is de formule:
=CONCATENATE("mv ";A1;".jpg ";SUBSTITUTE(LOWER(B1);" ";"_");".jpg")
Stap voor stap doet deze code het volgende: CONCATENATE is een commando om meerdere stukjes tekst aan elkaar te plakken. Je plakt met het commando dus de tekst
mv (met een spatie!), dan de inhoud van cel A1 (het nummer), dan de tekst
.jpg (weer met een spatie erachter!), vervolgens een bewerking van cel B1 (de naam), en tenslotte opnieuw de tekst
.jpg.
De bewerking die bovenstaande formule met cel B1 doet is ten eerste alle karakters omzetten in lowercase, en ten tweede alle spaties vervangen door underscores. De reden daarvoor is, is dat het mv-commando een argument met spaties ziet als meerdere argumenten.
Het resultaat in cel C1 is een UNIX commando (mv) met twee parameters: hernoem het bestand nummer.jpg naar naam.jpg.
Om dit aan het werk te krijgen doe je het volgende:
(1) Knip en plak de code uit dit bericht in een eerste cel in een extra kolom;
(2) Pas zonodig de referentie aan naar de eerste cellen met nummer en naam;
(3) Kopiëer en plak die formule naar alle volgende cellen in de extra kolom;
(4) Selecteer de hele kolom, en kopiëer naar het clipboard;
(5) Plak het in een tekstbestand en zet dat in de directory naast de foto's als bijvoorbeeld HERNOEM;
(6) Open een terminalvenster en navigeer naar de map met de foto's;
(7) Typ chmod +x HERNOEM, om het tekstbestand uitvoerbaar te maken;
(8) Typ HERNOEM, en al je bestanden worden hernoemd.
Tis effe prutsen, maar dan heb je ook wat. Overigens werken de commando's alleen in een Engelse versie van Excel. In een Nederlandse versie heten de commando's anders.
In plaats van een script in terminal kun je Excel op deze manier ook een AppleScript laten genereren, een tekstbestandje dus wat je kunt knippen en plakken in Script Editor en wat hetzelfde doet.
Je zult altijd iets met de database in Excel moeten doen, omdat het eigenlijk niet een batch rename is in de zin dat elke jpeg dezelfde bewerking ondergaat (bijvoorbeeld: het vervangen van spaties door underscores). Nee, elke jpeg ondergaat zijn eigen bewerking.
Er is overigens een oplossing die ik eleganter vind: maak gebruik van iPhoto, iView Media Pro of een ander foto-organiseer programma. Stop daar alle foto's in, en maak met behulp van bovenstaande truuk een soort AppleScript om de gegevens die je nu bewaart in Excel toe te voegen aan je iPhoto library. Bijvoorbeeld: maak een script dat in het commentaarveld van foto 8547 de naam "Henkie Janssen" toevoegt.
Daarna heb je allerlei programma's om overzichten te maken van je foto-database. Met een programma als Galerie kun je bijvoorbeeld een smoelenboek voor op de website van je school maken. Ik noem maar wat.
Toivo.