Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Logiciels Apple _ Automator - Mettre la 1ère lettre en majuscule

Écrit par : Chocomalo 29 Apr 2012, 23:27

Bonjour,

Petit à petit, je fais connaissance avec ce super petit robot pour renommer des fichiers. C'est assez simple, j'y suis arrivé sans problème, mais pour parfaire le tout, je voudrais que de la première lettre du fichier soit toujours en majuscule, mais je n'arrive pas à trouver comment ? Est-possible ?



Écrit par : quickfinder 1 May 2012, 07:34

Bonjour,

L'action standard ne permet pas ce niveau de contrôle. Elle propose de forcer la première lettre des mots en majuscules mais cela s'appliquera à tous les mots, pas seulement au premier.

Pour cela je vous conseille d'utiliser un bout d'AppleScript (ou Perl, Ruby...) pour transformer les noms de fichiers.

Vous pourrez trouver beaucoup d'informations sur Automator dans mon livre "Automatisez sous Mac" (http://digitbooks.fr/catalogue/automatisez-sous-mac-gamel.html).

rolleyes.gif

Écrit par : archibald.c 2 May 2012, 14:28

Bonjour,
Sous 10.6 (Snow Leopard) 2 items existent dans le bloc Texte des services :
Capitaliser la première lettre des mots
et
Capitaliser la première lettre des phrases

Le problème deviendrait : Comment appeler un service dans Automator…
Qui le sait ?

Cordialement
c.

Écrit par : ades 2 May 2012, 16:16

et en commençant par remplacer les espaces par une suite de caractère du type 'wxy' ; puis en exécutant le passage en capitales de la première lettre ; puis, enfin, en remplaçant 'wxy' par une espace ?

Écrit par : uzboxberg 2 May 2012, 16:21

je ne comprend pas bien peut-être, mais Automator (ici sous 10.5) comprend déjà la capitalisation de la première lettre (de chaque mot cependant, si donc le nom de fichier en comprend plusieurs...), voir screenshot:


Écrit par : sucellus 2 May 2012, 18:36

Citation (quickfinder @ 1 May 2012, 08:34) *
Bonjour,

Pour cela je vous conseille d'utiliser un bout d'AppleScript (ou Perl, Ruby...) pour transformer les noms de fichiers.

Bonjour

Avec python, j'utilise souvent ce code pour avoir un bout de texte tout en majuscules avec AppleScript.
Code
set textePresse_Papiers to the clipboard

set the clipboard to (do shell script "/usr/bin/python -c \"import sys; print unicode(sys.argv[1], 'utf8').capitalize().encode('utf8')\" " & quoted form of (textePresse_Papiers as text))

-- lower = style d'écriture du texte

-- capitalize = Style d'écriture du texte

-- title = Style D'Écriture Du Texte

-- upper = STYLE D'ÉCRITURE DU TEXTE

-- quoted form = Pour prendre en compte les caractères exotiques (non US)


@+

Écrit par : lopiko 2 May 2012, 20:43

Citation (Chocomalo @ 30 Apr 2012, 00:27) *
Bonjour,

Petit à petit, je fais connaissance avec ce super petit robot pour renommer des fichiers. C'est assez simple, j'y suis arrivé sans problème, mais pour parfaire le tout, je voudrais que de la première lettre du fichier soit toujours en majuscule, mais je n'arrive pas à trouver comment ? Est-possible ?


Tu peux essayer http://manytricks.com/namemangler/

Explications en Français ici : http://www.debutersurmac.com/tutoriels/manytricks.html#namemangler



Écrit par : uzboxberg 4 May 2012, 14:32

Alors quoi ? ohmy.gif

Écrit par : cboudier 4 May 2012, 22:52

  1. Obtenir les éléments sélectionnés du finder (par exemple)
  2. Remplacer du texte ( "espace" par ö, dans le nom de base)
  3. Modifier la casse (Casse De Titre)
  4. Remplacer du texte (ö par "espace", dans le nom de base)


Ça va transformer la phrase en un seul mot, changer la première lettre de ce mot en majuscule, puis transformer ce mot en phrase.

NB : il faut remplacer les espaces de la phrase par une lettre suffisamment bien choisie pour ne pas mettre le bazar --> le ö est relativement rare, mais tu peux choisir autre chose bien sur...

EDIT : j'avais zappé la réponse d'ades (message #4), mais c'est exactement le principe !

Écrit par : Chocomalo 6 May 2012, 20:22

Ades et Cboudier, j'étais persuadée que cette méthode allait fonctionner, mais bizarrement, après réintégration des espaces, toutes les premières lettres passent en majuscule, je trouve cela bizarre qu'il "garde en mémoire" cette précédente action. Il y a peut-être une autre action à adjoindre ...
De votre côté, avez-vous fait un réel essai ?

Merci pour les autres propositions, mais d'une, j'aimerais trouver une solution gratuite et surtout pouvoir utiliser au maximum les applications livrées d'origine avec Mac, j'aimerais éviter, dans un première temps d'installer des tonnes d'applications plus ou moins utiles, et de deux, hélas, je ne comprend strictement rien aux écritures dans le terminal, et d'après ce que j'ai pu lire, il est préférable de savoir ce que l'on fait la dedans.

Uzboxber, ben oui, comme tu dis, Automator comprend la capitalisation de la 1ère lettre de chaque mot, mais moi je ne veux que le premier mot avec une lettre capitale, comme je l'avais écris, la première lettre du fichier en majuscule.

En tout cas merci à vous tous de vous être bien mobilisé pour m'aider.

Écrit par : cboudier 6 May 2012, 22:11

Citation (Chocomalo @ 6 May 2012, 21:22) *
Ades et Cboudier, j'étais persuadée que cette méthode allait fonctionner, mais bizarrement, après réintégration des espaces, toutes les premières lettres passent en majuscule, je trouve cela bizarre qu'il "garde en mémoire" cette précédente action. Il y a peut-être une autre action à adjoindre ...
De votre côté, avez-vous fait un réel essai ?

Oui, j'ai fait un essai (même plusieurs avec succès) et c'est pour ça que je précise qu'il faut absolument utiliser une (ou des) lettre(s) et pas des signes.
Si tu remplace les espaces par "-" ou "_" ou "#" (par exemple), Automator reconnait toujours que c'est une phrase et change chaque première lettre de chaque mot.

Écrit par : noop 7 May 2012, 09:57

Bonjour,

avec un script shell voici une commande qui exécutée dans un dossier renomme tous les fichiers qui se trouvent dans le dossier et les sous dossiers du dossier.

Code
find . -type f |
while read ligne; do
        dir=`dirname "$ligne"`
        fic=`basename "$ligne"`
        len=${#fic}
        len=$(($len-1))
        debut=${fic:0:1}
        fin=${fic:1:$len}
        debut=$(echo $debut | tr '[:lower:]' '[:upper:]')
        echo "Debut: $debut - fin: $fin"

        nouveau_fichier="${dir}/${debut}${fin}"
        ancien_fichier="$ligne"
        mv "$ancien_fichier" "$nouveau_fichier"
done


Pour un spécialiste Automator/applescript ca devrait être facile d'intégrer du shell

Écrit par : sucellus 7 May 2012, 21:43

Citation (noop @ 7 May 2012, 10:57) *
Pour un spécialiste Automator/applescript ca devrait être facile d'intégrer du shell

Bonsoir

J"ai testé votre réponse en AppleScript (sans utiliser le terminal) pour voir si c'est réalisable facilement.

Majuscule des noms de fichiers dans un dossier et ses sous-dossiers.

Ce que fait mon code (je suis un amateur en AppleScript).

Si trouve pas de fichier Quitte le code.

Trouve un seul fichier, écrit le nom de ce dernier avec une majuscule.

Trouve plusieurs fichiers dans le dossier sélectionné et ses sous-dossiers, modifie les noms en les faisant débuter par une majuscule.

Ne prend en compte que si les premiers caractères des noms se trouvent pas dans cette variable abcdefghijklmnopqrstuvwxyz

Code écrit pour débutant en AppleScript (avec des commentaires à chaque lignes).

Si un volontaire pour regarder le code il le dit.

Par curiosité, je vais tester d'ajoute 2 barres de contrôle pour faire patienter (toujours en ApplepeScript)

La première pour faire patienter lors de la recherche.

La deuxième pour voir la barre de défilement et savoir le numéro du fichier traité et son nom.

@+

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)