Recherche application pour modifier des noms de fichiers

tirog

Membre confirmé
15 Octobre 2014
11
0
45
Bonjour,

Voila j'ai la problématique suivante: pour mon travail je reçois beaucoup de fichier nommer de la manière suivante : "Nomproduit 0123456.pdf" et je dois modifier leur nom de la manière suivante: "0123456 Nomproduit.pdf" pour que ces fichiers puissent être pris en compte par mon logiciel commercial.

C'est pas trop compliqué me direz-vous, il suffit de faire cliquer sur le nom du fichier et de changer le nom.
Sauf que j'ai beaucoup de fichiers et c'est un peu galère.

Aussi existe-t-il une application capable de faire ce genre de manipulation de manière autonome?

Merci d'avance.

Tirog
 
il existe quantité d'utilitaires pour renommage


et tu devrais aussi pouvoir faire ca via un processus automator ou un applescript
( d'autant qu'ici il ne s'agit que de permuter deux parties)

ps indiquer l'OSX utilisé
 
Merci Pascal pour ta réponse.

Je suis sur OS X 10.8.5.
J'ai vu qu'il existait Automator mais je dois avant installer Maverick et je ne peux pas.

Je vais regarder Apple script.

A plus


Tirog
 
J'ai vu qu'il existait Automator mais je dois avant installer Maverick et je ne peux pas.

C'est étrange, il me semblait qu'Automator était apparu avec 10.5,
Non ?
J'ai fumé la moquette ?

Parce que, si j'ai raison, tu n'as pas besoin d'installer Maverick.
 
J'ai fumé la moquette ?
ou c'était un pétard ...mouillé ;)

automator existe depuis Tiger ( 10.4)

et la majorité de ce qu'on fait avec automator est faisable autrement
(via Applescript par exemple)
un processus automator souvent n'est que de l'Applescript présenté autrement
 
Bonjour,

"Nomproduit 0123456.pdf" et je dois modifier leur nom de la manière suivante: "0123456 Nomproduit.pdf"
Bonjour et bienvenue,

grâce à ce sujet : http://forums.macg.co/mac-os-x/deplacer-date-nom-d-un-fichier-1252550.html

j'ai légèrement modifié le script pour qu'il fasse ce dont tu as besoin.

D'après quelques tests, ça fonctionne bien.

Je n'ai pas modifié les commentaires dans le script, donc certains sont inexacts.

Copie-colle le script dans Editeur Applescript, compile, et exécute sur un petit dossier de test.


-- Renomme tous les fichiers d'un dossier y compris dans les sous dossiers
-- cherche "_" et inverse devant le "-" avec derriere le "-" (modifié pour que ça marche avec un espace au lieu du tiret)
tell application "Finder"
set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
my inspecter(chemin)
end tell

on inspecter(un_dossier)
tell application "Finder"
-- traitement des fichiers :
set les_fichiers to files of un_dossier
repeat with chaque_fichier in les_fichiers
-- traitement d'un fichier
tell application "Finder"


set nom to name of chaque_fichier --récupère le nom du fichier
set extens to document file nom in un_dossier --recupere l extension du fichier
set lextension to name extension of extens
set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
set elements to text items of nom
set nomcourt to (items 1 thru -2 of elements) as string
set ancien_nom to nomcourt
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur

set numero to offset of " " in ancien_nom -- position du caractere "-" pour traiter le 1ere partie du nom
set numero to numero - 1
set debut to characters 1 thru numero of ancien_nom as string
set debut to result

set blanc to characters 1 thru 1 of debut as string -- on enleve les espaces en debut de la 1ere partie du nom
repeat while blanc = " "
set long to length of debut as integer
set debut to characters 2 thru long of debut as string
set blanc to characters 1 thru 1 of debut as string
end repeat

set long to length of debut as integer -- on enleve les espaces en fin de la 1ere partie du nom
set avantdern to long - 1 as integer
set blanc to characters long thru long of debut as string
repeat while blanc = " "
set debut to characters 1 thru avantdern of debut as string
set long to length of debut as integer
set avantdern to long - 1 as integer
set blanc to characters long thru long of debut as string
end repeat

set numero to offset of " " in ancien_nom -- position du caractere "-"pour traiter le 2eme partie du nom
set numero to numero + 1
set fin to characters numero thru end of ancien_nom as string
set fin to result

set blanc to characters 1 thru 1 of fin as string -- on enleve les espaces en debut de la 2eme partie du nom
repeat while blanc = " "
set long to length of fin as integer
set fin to characters 2 thru long of fin as string
set blanc to characters 1 thru 1 of fin as string
end repeat
set long to length of fin as integer -- on enleve les espaces en fin de la 2eme partie du nom
set avantdern to long - 1 as integer
set blanc to characters long thru long of fin as string
repeat while blanc = " "
set fin to characters 1 thru avantdern of fin as string
set long to length of fin as integer
set avantdern to long - 1 as integer
set blanc to characters long thru long of fin as string
end repeat
if numero > 1 then
set nouveaunom to (fin & " " & debut & "." & lextension) as string -- le nouveau nom avec 2eme partie+ "_" + 1ere partie + extension

set name of file nom of un_dossier to nouveaunom
end if
end tell
end repeat
-- traitement des dossiers :
set les_dossiers to folders of un_dossier
repeat with chaque_dossier in les_dossiers
-- traitement d'un dossier
my inspecter(chaque_dossier)
end repeat
end tell
end inspecter
tell application "Finder"
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Salut et merci à toutes et à tous pour vos réponses,

Je vais télécharger Applescript.
Cette application est-elle gratuite?

Merci d'avance

Tirog

---------- Nouveau message ajouté à 08h45 ---------- Le message précédent a été envoyé à 08h38 ----------

Re bonjour,

Je suis nouveau dans la famille Apple et j'avoue ne pas savoir comment télécharger le logiciel Applescript.
J'avoue me sentir un peu nouille de vous poser cette question, mais pouvez vous m'aider?

Merci
Tirog
 
il va falloir que tu apprennes un peu plus à maitriser les facons OSX
(même si c'est d'utilisation facile un apprentissage est nécessaire pour ca)

parce que tu débarques et ce n'est pas encore le cas

un exemple
ta question "télécharger" Applescript
Applescript c'est pas un logiciel
Et pour écrire des applescripts où utiliser des scripts tous faits c'est déjà dans ton mac
( l'OS entier si script ( ou action) est un fichier ou processus déjà sur le mac ou Automator ou Editeur d'Applescript pour le créer)

Sources d'infos et tutos
( plus ou moins classé par ordre croissant de niveau)


tutos special débutants en francais ( divers formes de tutos)
http://www.debutersurmac.com/tutoriels/accueil.html

bons tutos vidéos en francais
chaine youtube "compétence mac"
http://www.youtube.com/user/competencemac

tutos officiels Apple
pour dernier OS mais mêmes principes généraux pour OS précédents
les bases
http://www.apple.com/fr/support/macbasics/

exemples special switch chez Apple
http://support.apple.com/kb/HT2514?viewlocale=fr_FR
http://support.apple.com/kb/HT2512?viewlocale=fr_FR
http://support.apple.com/kb/HT2518?viewlocale=fr_FR

très bon site sur OS X
http://www.osxfacile.com/index.html
----
autres tutos vidéos plus anciens ( pas recontrolé recemment)
http://www.macpoweruser.net/podcast/index.html
http://www.vodeclic.com/parcourir/tous_les_packs
http://www.logicielmac.com/pages/tutoriaux_liste.php
 
Salut et merci.

J'ai une utilisation de Mac OS X uniquement professionnelle.
A titre perso j'utilise Windows…

Je vais mon plonger dans les tutoriels que tu m'as transmis.

Encore merci

Bonne journée.

Tirog
 
pouvez vous m'aider?
Avec l'Editeur AppleScript (rangé dans Applications / Utilitaires), on peut écrire, utiliser des scripts.

On peut aussi créer une application à partir du script.

Ce que j'ai fait à partir du script présenté au dessus.
Va télécharger l'application ici : http://demo.ovh.eu/fr/50f63e8f168cce113e8ee089cbf3642f/
Elle s'appelle "inverser nom".
Place son icône dans le Dock comme pour n'importe quelle autre application.

Lance-la : elle propose de choisir un dossier, sélectionne un dossier test que tu auras préparé (avec quelques copies de tes fichiers dedans).

Normalement, ça fonctionne (testé chez moi le téléchargement + l'utilisation).
 
Bonjour et bienvenue,

grâce à ce sujet : http://forums.macg.co/mac-os-x/deplacer-date-nom-d-un-fichier-1252550.html

j'ai légèrement modifié le script pour qu'il fasse ce dont tu as besoin.

D'après quelques tests, ça fonctionne bien.

Je n'ai pas modifié les commentaires dans le script, donc certains sont inexacts.

Copie-colle le script dans Editeur Applescript, compile, et exécute sur un petit dossier de test.


-- Renomme tous les fichiers d'un dossier y compris dans les sous dossiers
-- cherche "_" et inverse devant le "-" avec derriere le "-" (modifié pour que ça marche avec un espace au lieu du tiret)
tell application "Finder"
set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
my inspecter(chemin)
end tell

on inspecter(un_dossier)
tell application "Finder"
-- traitement des fichiers :
set les_fichiers to files of un_dossier
repeat with chaque_fichier in les_fichiers
-- traitement d'un fichier
tell application "Finder"


set nom to name of chaque_fichier --récupère le nom du fichier
set extens to document file nom in un_dossier --recupere l extension du fichier
set lextension to name extension of extens
set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
set elements to text items of nom
set nomcourt to (items 1 thru -2 of elements) as string
set ancien_nom to nomcourt
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur

set numero to offset of " " in ancien_nom -- position du caractere "-" pour traiter le 1ere partie du nom
set numero to numero - 1
set debut to characters 1 thru numero of ancien_nom as string
set debut to result

set blanc to characters 1 thru 1 of debut as string -- on enleve les espaces en debut de la 1ere partie du nom
repeat while blanc = " "
set long to length of debut as integer
set debut to characters 2 thru long of debut as string
set blanc to characters 1 thru 1 of debut as string
end repeat

set long to length of debut as integer -- on enleve les espaces en fin de la 1ere partie du nom
set avantdern to long - 1 as integer
set blanc to characters long thru long of debut as string
repeat while blanc = " "
set debut to characters 1 thru avantdern of debut as string
set long to length of debut as integer
set avantdern to long - 1 as integer
set blanc to characters long thru long of debut as string
end repeat

set numero to offset of " " in ancien_nom -- position du caractere "-"pour traiter le 2eme partie du nom
set numero to numero + 1
set fin to characters numero thru end of ancien_nom as string
set fin to result

set blanc to characters 1 thru 1 of fin as string -- on enleve les espaces en debut de la 2eme partie du nom
repeat while blanc = " "
set long to length of fin as integer
set fin to characters 2 thru long of fin as string
set blanc to characters 1 thru 1 of fin as string
end repeat
set long to length of fin as integer -- on enleve les espaces en fin de la 2eme partie du nom
set avantdern to long - 1 as integer
set blanc to characters long thru long of fin as string
repeat while blanc = " "
set fin to characters 1 thru avantdern of fin as string
set long to length of fin as integer
set avantdern to long - 1 as integer
set blanc to characters long thru long of fin as string
end repeat
if numero > 1 then
set nouveaunom to (fin & " " & debut & "." & lextension) as string -- le nouveau nom avec 2eme partie+ "_" + 1ere partie + extension

set name of file nom of un_dossier to nouveaunom
end if
end tell
end repeat
-- traitement des dossiers :
set les_dossiers to folders of un_dossier
repeat with chaque_dossier in les_dossiers
-- traitement d'un dossier
my inspecter(chaque_dossier)
end repeat
end tell
end inspecter
tell application "Finder"
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

Salut Renaud,

J'ai testé ton code tu m'avais proposé à l'aide de Script editor et j'ai le message d'erreur suivant:
Il est impossible de rendre characters 1 thru 0 of "JEFO SECURE AD3E 03414A54" en type string".

J'image que cela est lié au nom initial de mon fichier qui se nomme "JEFO SECURE AD3E 03414A54" qui est un mélange de chiffres et de lettres.
Ce que j'aimerai c'est le renommer de la manière suivante: "03414A54 JEFO SECURE AD3E".

J'imagine qu'il faut changer quelques terme dans le code?

Merci d'avance pour le temps consacré.

Tirog
 
Ce n'est pas le format que tu as posté dans ton premier message.

Par conséquent, dans son état actuel, le script ne pourra pas transformer :

JEFO SECURE AD3E 03414A54 en : 03414A54 JEFO SECURE AD3E

Je dois partir maintenant et espère que d'autres vont t'aider.
Bonne chance.
 
Renaud,

Il n'ya pas de soucis.
Effectivement j'avais omis les espaces. Si j'enlève les espaces ça fonctionne.
Donc c'est déjà super bien.

Merci en tout cas pour ton aide, c'est hyper sympa le temps que tu as pris pour m'aider.

Ah si la communauté en général pouvait prendre exemple sur la communauté Apple concernant l'entraide, le monde irait beaucoup mieux…

MERCI

Tirog
 
Applescript ( tout comme l'utilisation du Terminal) requiert de la précision en écriture personnelle
une erreur même minuscule et c'est pas le résultat attendu

il existe des milliers de scripts pré écrits sur le web , ensuite faut adapter pour son cas ou....pour syntaxe mavericks si script très ancien, des détails ayant évolués dans les syntaxes de certaines choses

c'est en gros ce que tu vient de faire avec le script de Renaud31 :coucou:
--

concernant le Terminal
là faut faire hyper gaffe
c'est un outil TRES puissant ( et potentiellement dangereux)
permet de jeter un oeil dans les entrailles et d'intervenir

là l'hyper précision est vitale car on rentre directement dans l'OS et des erreurs peuvent avoir de désagréables conséquences, parfois très graves
ne pas foncer, et BIEN maitriser Terminal avant de se lancer dans des écritures de ligne de commande mal comprises

dans le Terminal y a de tout
de lignes de commandes innoffensives ( y a même des jeux ou un psy , si si un psy, assez potache)
à commandes modificatrices ( ou flingueuses si on se gourre)
 
bonjour,
Effectivement le script que j'avais écrit était fait pour un besoin spécifique...

Au vue de ton besoin, si j'ai bien compris, tu veux inverser dans le nom du fichier ce qui est avant le dernier blanc avec ce qui est après ce dernier blanc.

Alors voilà ci-dessous mon script modifié pour tes besoins.

-- Renomme tous les fichiers d'un dossier y compris dans les sous dossiers
-- cherche le dernier " " et inverse devant le dernier " " avec derriere le dernier " "
tell application "Finder"
set chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
my inspecter(chemin)
end tell

on inspecter(un_dossier)
tell application "Finder"
-- traitement des fichiers :
set les_fichiers to files of un_dossier
repeat with chaque_fichier in les_fichiers
-- traitement d'un fichier
tell application "Finder"



set nom to name of chaque_fichier --récupère le nom du fichier
set extens to document file nom in un_dossier --recupere l extension du fichier
set lextension to name extension of extens
set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
set elements to text items of nom
set nomcourt to (items 1 thru -2 of elements) as string
set ancien_nom to nomcourt
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur

set numero to offset of " " in ancien_nom -- verifie s'il y a un " "

if numero > 1 then
set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {" "} --récupère la partie avant le dernier " "
set elements to text items of nom
set part1 to (items 1 thru -2 of elements) as string
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
set nombre to count of text items of part1
set nombre to nombre + 2
set fin to count of text items of ancien_nom
set part2 to (items nombre thru fin of ancien_nom) as string -- récupère la partie aprés le dernier " "



set nouveaunom to (part2 & " " & part1 & "." & lextension) as string -- le nouveau nom avec 2eme partie+ " " + 1ere partie + extension

set name of file nom of un_dossier to nouveaunom
end if
end tell
end repeat
-- traitement des dossiers :
set les_dossiers to folders of un_dossier
repeat with chaque_dossier in les_dossiers
-- traitement d'un dossier
my inspecter(chaque_dossier)
end repeat
end tell
end inspecter
tell application "Finder"
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

Dis-moi si cela fonctionne suivant ton besoin.
 
Salut Zeltron,

Ca fonctionne parfaitement en tout cas sur les fichiers testés.

Merci beaucoup, vous m'avez tous parfaitement aidé.

Ciao et bonne journée.

Tirog
 
Tu as été aidé, à ton tour d'aider.

Aide les suivants qui auraient un problème similaire.
Comment?
Cliquer "résolu"
( via le menu "outils de la discussion", en haut à droite)
 
Perso j'utilise Renamer qui est tout simplement formidable pour des changements en lot 😃
 
Tu as été aidé, à ton tour d'aider.

Aide les suivants qui auraient un problème similaire.
Comment?
Cliquer "résolu"
( via le menu "outils de la discussion", en haut à droite)

Ca y est c'est fait!
J'avais chercher où était le bouton "résolu" mais je n'avais pas trouvé…

MErci

Ciao

Tirog