Script pour suffixes

Berthold

Bricoleur du dimanche
Club iGen
5 Novembre 2004
4 921
5 167
par là-bas, environ.
Une amie PCiste m'a confié un CD d'images Jpeg, qu'elle a toutes patiemment renommées, mais en oubliant l'extension de reconnaissance du format : les caractères ".jpg" qu'on peut voir en suffixe de nom de fichier.
Bizarrement, Mac OS X les reconnaît comme executables Unix (ou Windows). Photoshop ne les ouvre pas, ni Aperçu, ni...
En fait, seul The Gimp 2 les ouvre efficacement.
Bravo The Gimp, mais il n'est vraiment pas pratique pour visionner des photos en grand nombre.

J'ai eu l'idée toute simple d'un petit AppleScript qui rajoute l'extension désirée au nom de tous les fichiers contenus dans un même dossier. Dans mon cas il s'agit de ".jpg", mais le script permet de rentrer le suffixe que l'on veut. Je ne résiste pas à l'orgueil de vous présenter le petit :

(à copier dans l'éditeur de scripts)

tell application "Finder"
activate
choose folder with prompt "Où est le dossier des fichiers à traiter ?"
set dossier to result as string
display dialog "Extension à rajouter (sans le point) ?" default answer "jpg" buttons {"OK"} default button 1
set extension to (text returned of result)

repeat with i from 1 to number of file of folder dossier
set fichier to name of file i of folder dossier
set name of document file fichier of folder dossier to (fichier & "." & extension)
end repeat

end tell
Les images s'ouvrent ensuite comme d'habitude, par exemple avec Aperçu.
À noter, si on utilise malencontreusement ce script plusieurs fois sur le même dossier, on crée des noms de fichiers du genre "nom.jpg.jpg". Ce n'est pas grave en soit, mais les noms trop longs ne sont ni clairs ni pratiques.
D'autre part, vous pouvez toujours essayer de forcer un fichier avec une extension qui ne correspond pas à son type (une image GIF en JPEG, par exemple), ce sera inefficace.

Si vous avez des idées d'améliorations ? Je me demande s'il est possible de reconnaître le type d'un fichier pour lui associer l'extension appropriée, par exemple ?
 
oh ben super, merci !
ça m'arrive souvent avec des vieilles sauvegardes d'images ou de sons :)
ze peux copier, tu prends pas de droits ? :D
 
Vu la grande qualité du machin, tu peux y aller ! :)
(Si j'avais voulu protéger, aurais-je publié ?)
 
Sympa ton truc, mais Avosmac nous avait parlé d'un utilitaire nommé "Renamer4Mac" que j'utilise depuis longtemps.

Mais c'est bien de trouver des astuces comme la tienne. :up:
 
J'ai amélioré le script en rajoutant un petit test : si le suffixe eiste déjà, il ne le rajoute pas. Ça évite les noms du style "nom.jpg.jpg". Ça n'est pas absolument indispensable, mais quand même.
Voici donc :
tell application "Finder"
activate
choose folder with prompt "Où est le dossier des fichiers à traiter ?"
set dossier to result as string
display dialog "Extension à rajouter (sans le point) ?" default answer "jpg" buttons {"OK"} default button 1
set extension to (text returned of result)

repeat with i from 1 to number of file of folder dossier
set fichier to name of file i of folder dossier
if not (fichier ends with ("." & extension)) then
set name of document file fichier of folder dossier to (fichier & "." & extension)
end if
end repeat
end tell
 
On peut se contenter de cette simple commande de terminal:
Bloc de code:
 % for f in $(ls chemin_du_dossier); do									 14:53
     [frangi - Mer 29] for % mv $f $f.jpg
     [frangi - Mer 29] for % done
J'utilise ici le Z-shell. Pour adapter à tcsh, voir AvosMac n° 45 p. 31.
Si on veut en faire un script, on créera le fichier namejpg.sh (par exemple):
Bloc de code:
     #!/bin/sh
     for f in $(ls $1); do
     mv $1/$f $1/$f.jpg
     done
  exit
Puis:
Bloc de code:
     % chmod 755 namejpg.sh
Il suffira ensuite de taper dans le terminal:
Bloc de code:
 % ./namejpg.sh nom_du_dossier
et return, et le tour est joué.Plus direct que le script AppleScript. Pour « nom_du_dossier », ne pas oubier d'y inclure son chemin d'accès. Le mieux est encore de le glisser déposer à côté de ./namejpg.sh.