IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> renommer en série, script bash pour renommer des fichiers
Options
niroub
posté 4 Jun 2015, 17:03
Message #1


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Bonjour à tous

Je me presente :
olivier je bosse en imprimerie a la preparation des fichiers et je me fais quelques petits scripts pour automatiser certaines taches redondantes (chiante ?).

J'ai souvent le cas de retirage d'impression ou le numero de commande est mis a jour.

Ce travail consiste juste pour moi à changer le numero des fichiers afin de les faire correspondre a la bonne commande afin que toute la chaine s'y retrouve.

J'explique plus simplement :

j'ai un dossier du type "140522_nomclient_description" avec des fichiers dedans du meme type de nom

par un petit script qui me demanderai quel numero remplacer et par lequel j'aimerai que tous les fichiers et le dossier deviennent : "150454_nomclient_description".

Ayant cherché beaucoup sur le net je n'ai jamais trouvé un script qui marche (la boucle n'est a priori pas recursive dans les sous dossiers) et la commande find me fout un bazar pas possible.

Ne maitrisant pas du tout tout ca et faisant ca seulement parce que ca m'intéresse et pour optimiser mon temps je fais appelle a votre aide....car laaa.... je n'en puis pluuuss !

merci d'avance.
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 4 Jun 2015, 17:15
Message #2


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Bonjour

Vous trouverez ci-dessous un squelette de script récursif que j'ai utilisé à plusieurs reprises.

--[SCRIPT batch4FB.app]
(*

Yvan KOENIG (VALLAURIS, France)
2013/11/25
*)

property rapport : {} -- globale
property nomDuRapport : "Descripteurs de fichiers.txt"

#=====

on run (* lignes exécutées si on double clique sur l'icône du script application
• lines executed if one double click the application script's icon *)

tell application "SystemUIServer" to set dossier to choose folder (*
dans un bloc System Events pour avoir un titre de dialogue "localisé"
• in a System Events block to get a localized dialog title. *)
my commun({dossier})
end run

#=====

on open (sel) (* sel contient une liste d'alias des éléments qu'on a déposés sur l'icône du script (la sélection)
• sel contains a list of aliases of the items dropped on the script's icon (the selection) *)
my commun(sel)
end open

#=====

on commun(liste)
local elem, p2d, p2r

set my rapport to {}
try
repeat with elem in liste
try
my exploreTraite(elem as Unicode text, "")
end try
end repeat

set p2r to (path to desktop as text) & nomDuRapport
my writeto(p2r, my recolle(my rapport, return) & return, text, true)
set my rapport to {}
set p2r to p2r as alias
--tell application "Numbers" to open p2r
on error MsgErr number NroErr

set my rapport to {}
if NroErr is not -128 then
beep 1
my afficheLeMessage("" & NroErr & " : " & MsgErr)
end if -- NroErr is…
return
end try
end commun

#=======

on afficheLeMessage(m)
beep 1
if my parleanglais() then
"OK"
else
"Vu"
end if
tell application (path to frontmost application as string) to display dialog m buttons {result} default button 1 giving up after 20
end afficheLeMessage

#=======

on exploreTraite(elem, ptree) (*
elem est un Unicode text
• elem is an Unicode text *)
local cl_, typeId_

tell application "System Events" to tell disk item elem
set cl_ to its class as text
end tell

if cl_ is not in {"folder", "«class cfol»"} then
my TraiteUnDocument(elem)
else
my ExploreUnDossier(elem, ptree)

end if -- cl_ is …
end exploreTraite

#=====

on ExploreUnDossier(dossier, ptree)
local nomElement, C

if dossier does not end with ":" then set dossier to dossier & ":"
tell application "System Events" to get name of disk items of folder dossier whose visible is true
repeat with nomElement in result --list folder dossier without invisibles
tell application "System Events" to set C to name of (dossier as alias)
my exploreTraite((dossier & nomElement), ptree & C & ":")
end repeat
end ExploreUnDossier

#=====

on TraiteUnDocument(leCheminOriginal_UniText) (*
• leCheminOriginal_UniText is of class Unicode text *)
local nomSource, creDate, modDate, enListe, theExt
(*
Il aurait été possible de demander l'extension à System Events
mais puisqu'il faut découper le nom pour supprimer l'extension
autant e profiter pour récupérer celle-ci. *)
tell application "System Events" to tell disk item leCheminOriginal_UniText
set nomSource to name as text
# set theExt to name extension
set creDate to creation date as text
set modDate to modification date as text
end tell -- System Events

if nomSource contains "." then
set enListe to my decoupe(nomSource, ".")
set theExt to "." & item -1 of enListe
set nomSource to my recolle(items 1 thru -2 of enListe, ".")
else
set theExt to ""
end if

my recolle({nomSource, theExt, "", "", creDate, modDate}, tab)
set end of my rapport to result
end TraiteUnDocument

#=====

on decoupe(t, d)
local oTIDs, l
set {oTIDs, AppleScript's text item delimiters} to {AppleScript's text item delimiters, d}
set l to text items of t
set AppleScript's text item delimiters to oTIDs
return l
end decoupe

#=====

on recolle(l, d)
local oTIDs, t
set {oTIDs, AppleScript's text item delimiters} to {AppleScript's text item delimiters, d}
set t to "" & l
set AppleScript's text item delimiters to oTIDs
return t
end recolle

#=====
(*
Handler borrowed to Regulus6633 - http://macscripter.net/viewtopic.php?id=36861
*)
on writeto(targetFile, theData, dataType, apendData)
-- targetFile is the path to the file you want to write
-- theData is the data you want in the file.
-- dataType is the data type of theData and it can be text, list, record etc.
-- apendData is true to append theData to the end of the current contents of the file or false to overwrite it
try
set targetFile to targetFile as text
set openFile to open for access file targetFile with write permission
if not apendData then set eof of openFile to 0
write theData to openFile starting at eof as dataType
close access openFile
return true
on error
try
close access file targetFile
end try
return false
end try
end writeto

#=====

on parleanglais()
return (do shell script "defaults read 'Apple Global Domain' AppleLocale") does not start with "fr_"
end parleanglais

#======
--[/SCRIPT]


Yvan KOENIG (VALLAURIS, France) jeudi 4 juin 2015 18:15:02
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 4 Jun 2015, 18:35
Message #3





Guests






Bonjour,

Quand on veut renommer des fichiers et des dossiers, il faut renommer les fichiers avant, donc il faut utiliser l'option -d avec la commande find, sinon, si on renomme le dossier avant, les chemins des fichiers seront incorrect

Premièrement, essaie ce script bash :
remplace ~/Documents par le chemin du dossier désiré (le dossier où il faut rechercher des fichiers et des dossiers), sinon on recherche dans votre dossier "Documents"
Code
#!/bin/bash
rechText="140522_" ### le nom commence par
remplText="150454_" ### le texte de remplacement

find -d ~/Documents  -name "$rechText"* -print0 | while read -d $'\0' f
do
    echo "$f"
    nom=${f##*/}
    newName=${nom/$rechText/$remplText} ## on remplace le début du nom
    echo "${f%/*}/$newName"
done


Vous obtiendrez les chemins des fichiers et celui avec le nouveau nom (cela ne renomme aucun fichiers ni dossiers, c'est juste pour tester).
Exemple
Citation
/Users/jack/Documents/140522_nomclient_description/140522_nomclient_description.rtf ## le fichier original
/Users/jack/Documents/140522_nomclient_description/150454_nomclient_description.rtf ## le fichier avec son nouveau nom
/Users/jack/Documents/140522_nomclient_description ## le dossier original
/Users/jack/Documents/150454_nomclient_description ## le dossier avec son nouveau nom


Si le résultat est bon :
remplace le texte de la partie do....done par ceci
Code
do
    nom=${f##*/}
    newName=${nom/$rechText/$remplText} ## on remplace le début du nom
    mv -n "$f" "${f%/*}/$newName" ## renomme l'élément
done
Go to the top of the page
 
+Quote Post
niroub
posté 5 Jun 2015, 08:34
Message #4


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Merci de vos réponses précises et rapide.

Désolé Yvan mais je ne comprend rien a ta réponse - ca ne doit pas être de mon niveau wink.gif

Merci à Jack je vais tester ca dans la journée et te tiens au courant
(il est vrai que j'ai remarqué qu'une fois le 1er dossier renommé "find" ne trouve plus le bon chemin du coup.
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 09:38
Message #5


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Bon après test de ton script "JacqR" il apparait que tous les sous fichiers ne se renomment pas tous.

Est ce un souci de formatage de texte ? ou le script ne gère pas bien la boucle ?


Le script ne marche qu'avec des numéros ? pas le texte ?

pourrais tu me donner plus de détail sur le code (dont je ne comprend pas tout)
-->read -d $'\0' f
ou --> nom=${f##*/}

on touche au but...

Ce message a été modifié par niroub - 8 Jun 2015, 10:54.
Go to the top of the page
 
+Quote Post
teddy7545
posté 8 Jun 2015, 11:21
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Pour utiliser la solution que te propose JacqR c'est pas très compliqué ...

Récupère le code suivant (J'ai fais une légère modification car la commande find comportait une erreur)
Code
#!/bin/bash
rechText="140522_" ### le nom commence par
remplText="150454_" ### le texte de remplacement

find -d ~/Documents  -name "$rechText*" -print0 | while read -d $'\0' f
do
    echo "$f"
    nom=${f##*/}
    newName=${nom/$rechText/$remplText} ## on remplace le début du nom
    echo "${f%/*}/$newName"
done


Colle le texte dans un éditeur de texte (avec TextEdit par exemple).
Dans le menu Format choisit "Convertir en format Texte"
(Si tu as seulement "Convertir en format RTF" dans le menu Format c'est que tu es déjà en format texte par défaut)

Enregistre ce fichier la ou tu le souhaites par exemple sur le bureau (Commande du menu fichier --> enregistrer) avec le nom que tu souhaites (par exemple: renommeDossier) suivi de l'extension (.command).
Tu peux refermer TextEdit
Tu devrais donc retrouver un fichier "renommeDossier.command" sur ton bureau (En fonction des réglage de ton finder il est possible qu'il soit nommé juste "renommeDossier" mais le fichier s'appelle bien comme tu l'a demandé et l'extention est dans ce cas juste cachée.

Pour rendre excécutable ce script il faut ensuite lui donner les droits ...
Pour cela ouvre l'application "Terminal"
Si tu as placé et nommé le fichier comme je te l'ai conseillé il te suffit de coller la ligne suivante :
Code
chmod u+x ~/Desktop/renommeTest.command

Cela va ajouter les droits au script "renommeTest.command" placé sur le Bureau (~/Desktop/) de s'exécuter (+x) à l'utilisateur (u) c'est a dire toi.
Tu peux refermer Terminal

Si tu cliques sur le script depuis le bureau tu devrais voir une fenêtre de terminal s'ouvrir te montrer tous les fichiers à renommer avec le nom de remplacement.
Dans ce script, pour le moment il n'y a pas le renommage encore mais c'est un test pour te montrer que tous les fichiers seront bien trouvé et renommé comme tu le souhaites.

Edit : grillé , apparemment tu a réussi a mettre le script en place tout seul le temps que je tape un petit guide mais ton premier message me fesait penser que tu ne savais pas comment faire ....
Pour les problèmes que tu as rencontrés refait un essais avec la ligne suivante modifiée
Code
find -d ~/Documents  -name "$rechText*" -print0 | while read -d $'\0' f


Ce message a été modifié par teddy7545 - 8 Jun 2015, 11:48.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 13:43
Message #7


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Merci Teddy et désolé de t'avoir fais perdre un peu de temps
je connais la manière dont on lance les scripts wink.gif

par contre il y a certaines choses que je ne comprend pas dans le script.

Pourquoi le script marche sur les numéros et pas sur le texte (variable uniquement nombre peut être ?)

il y a un bug d'affichage ou de mise a jour du finder qui ne me montre pas les bons noms de dossier changé.
(si je relance le finder les modifications se font par contre)
voir ci joint capture écran (j'ai masqué le nom du client)


Fichier(s) joint(s)
Fichier joint  capture.jpg ( 340.96 Ko ) Nombre de téléchargements : 14
 
Go to the top of the page
 
+Quote Post
teddy7545
posté 8 Jun 2015, 14:08
Message #8


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 879
Inscrit : 4 Apr 2004
Lieu : Lorraine - 54
Membre no 17 184



Pas grave pour le temps passé, ca servira peut être un jour à quelqu'un qui voudra se lancer smile.gif
Et puis j'avais lu un peu vite et c'est pas la réponse de JacqR que tu comprenais pas mais celle de Yvan que je trouve aussi un peu longue par rapport au shell

Le script dans l'état fonctionne même avec du texte s'il est placé au début du nom ...
Si tu veux pouvoir changer du texte au milieu du nom il faudrait modifier la commande find comme suit :
Code
find -d ~/Documents  -name "*$rechText*" -print0 | while read -d $'\0' f


Dans ce cas, les fichiers dont le texte est contenu dans le nom (quelque soit la position) seront modifiés mais ca ne correspondait pas à ton besoin dans ta première explication.

Il faut placer les * entre les guillemets qui entourent la variable pour que le shell puisse fonctionner avec tous les noms de fichiers (caractères accentués, caractère spéciaux et espaces compris) sinon tu risque de rencontrer des problèmes.

Je ne sais pas expliquer ton soucis de mise à jour du finder (sauf que j'ai aussi déjà rencontré des lenteurs de mise à jour avec des répertoires comportant de nombreux fichiers mais ca finit par se mettre a jour tout de même)

Ce message a été modifié par teddy7545 - 8 Jun 2015, 14:16.


--------------------
MP Intel Dual Xéon 3 GHz - MacOSX 10.10.3 - ATI Radeon HD 5770 - ATTO UL5D - Apple Cinema HD Display 23 pouces
MBP 15' 2017 - MBP 13' mid 2009 - iMac 24' 8,1 2,8GHz - MP G4 MDD Bi 1,25 GHz - MP G4 Quicksylver 933MHz
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 14:14
Message #9


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Ok Super, non le 1er script correpond a ce que je voulais c nickel
Pour le bug d'affichage dans les fenêtres je relancerai le finder si il y a que ça. Ce script me fait déjà gagner beaucoup de temps

Par contre excusez moi d'être insistant mais pourriez juste m'expliquer brièvement ces lignes du script :

while read -d $'\0' f

nom = ${f##*/}

...et ce sera ok pour moi et un grand merci pour votre aide sinon j'y serai encore wink.gif
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 8 Jun 2015, 14:19
Message #10





Guests






Bonjour,


Citation (niroub @ 8 Jun 2015, 04:38) *
Le script ne marche qu'avec des numéros ? pas le texte ?

pourrais tu me donner plus de détail sur le code (dont je ne comprend pas tout)
-->read -d $'\0' f
ou --> nom=${f##*/}

read -d $'\0' f :
cela lis le chemin et le mets dans la variable f
-d $'\0' ; comme on utilise l'option -print0 dans la commande find, donc il faut spécifier le séparateur de chemin avec -d $'\0'.
$'\0' est le caractère ASCII NUL (il est invisible).


nom=${f##*/} : Cela récupère le nom de l'élément à partir du chemin dans la variable f, donc, cela supprime tous les caractères jusqu'à la dernière barre oblique /


Pour le texte :
Il ne doit pas contenir des caractères qui sont utilisés pour le regex, sinon il faut mettre une barre oblique inversé avant ce caractère (Ex: \* ).
Si ce que tu recherches n'est pas le début du nom, c'est sûr que cela ne fonctionnera pas, le script est spécifique selon ta demande.
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 8 Jun 2015, 14:37
Message #11





Guests






Citation (niroub @ 8 Jun 2015, 09:14) *
Pour le bug d'affichage dans les fenêtres je relancerai le finder si il y a que ça. Ce script me fait déjà gagner beaucoup de temps


Essaie ceci :
Ajoute cette ligne à la fin du script (après la ligne done)
Code
osascript -e 'tell application "Finder" to tell Finder windows to update every item'
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 14:37
Message #12


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



OK merci JacqR

je vais fouiller ça c'est encore un peu difficile pour moi
(et si tu connais des bons supports en ligne pour débutant ...wink.gif
Go to the top of the page
 
+Quote Post
g4hd
posté 8 Jun 2015, 14:45
Message #13


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 9 716
Inscrit : 9 Nov 2001
Lieu : Pays d’Aix
Membre no 1 255





Avez-vous remarqué que OS X 10.10 Yosemite propose de renommer les fichiers ?
J'ai déjà utilisé plein de fois cette fonctionnalité.
Clic-droit sur une sélection de fichiers ou de dossiers…
thumb.gif

Oui, il y a de bonnes choses dans Yosemite !

Ce message a été modifié par g4hd - 8 Jun 2015, 14:53.


--------------------
 Mac Studio M1max 32 Go 1 To - Sonoma - Eizo 27" + Nec 21" - usage PAO
 MBp14 M2pro 16 Go 1 To - Sonoma - iPhone 15 128 - iWatch 6
 abonné VVMac
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 14:53
Message #14


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Citation (JacqR @ 8 Jun 2015, 15:37) *
Citation (niroub @ 8 Jun 2015, 09:14) *
Pour le bug d'affichage dans les fenêtres je relancerai le finder si il y a que ça. Ce script me fait déjà gagner beaucoup de temps


Essaie ceci :
Ajoute cette ligne à la fin du script (après la ligne done)
Code
osascript -e 'tell application "Finder" to tell Finder windows to update every item'



Ca ne marche pas et j'ai l'erreur suivante :

52:69: execution error: Finder got an error: Can’t get every item of every Finder window. (-1728)


Citation (g4hd @ 8 Jun 2015, 15:45) *
Avez-vous remarqué que OS X 10.10 Yosemite propose de renommer les fichiers ?
J'ai déjà utilisé plein de fois cette fonctionnalité.


Et c'est maintenant que tu le dit tongue.gif

Merci wink.gif
Go to the top of the page
 
+Quote Post
g4hd
posté 8 Jun 2015, 14:57
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 9 716
Inscrit : 9 Nov 2001
Lieu : Pays d’Aix
Membre no 1 255



Citation (niroub @ 8 Jun 2015, 15:53) *
Et c'est maintenant que tu le dit tongue.gif

Merci wink.gif

C'est la news du site rénové qui m'a accaparé la lecture du forum !
Désolé pour le retard !
biggrin.gif


--------------------
 Mac Studio M1max 32 Go 1 To - Sonoma - Eizo 27" + Nec 21" - usage PAO
 MBp14 M2pro 16 Go 1 To - Sonoma - iPhone 15 128 - iWatch 6
 abonné VVMac
Go to the top of the page
 
+Quote Post
Guest_JacqR_*
posté 8 Jun 2015, 15:11
Message #16





Guests






Citation (niroub @ 8 Jun 2015, 09:53) *
Ca ne marche pas et j'ai l'erreur suivante :
52:69: execution error: Finder got an error: Can’t get every item of every Finder window. (-1728)

C'est qu'il n'y a aucune fenêtre ouverte dans le Finder.

Celui-ci vérifie qu'il y a au moins une fenêtre d'affichée .
Code
osascript -e 'tell application "Finder" to tell Finder windows to if it is not {} then update every item'
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 15:17
Message #17


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Citation (JacqR @ 8 Jun 2015, 16:11) *
Citation (niroub @ 8 Jun 2015, 09:53) *
Ca ne marche pas et j'ai l'erreur suivante :
52:69: execution error: Finder got an error: Can’t get every item of every Finder window. (-1728)

C'est qu'il n'y a aucune fenêtre ouverte dans le Finder.

Celui-ci vérifie qu'il y a au moins une fenêtre d'affichée .
Code
osascript -e 'tell application "Finder" to tell Finder windows to if it is not {} then update every item'



Plus de messages d'erreur mais la liste des noms de fichier n'est toujours pas a jour
Go to the top of the page
 
+Quote Post
g4hd
posté 8 Jun 2015, 15:28
Message #18


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 9 716
Inscrit : 9 Nov 2001
Lieu : Pays d’Aix
Membre no 1 255



Citation (niroub @ 8 Jun 2015, 16:17) *
…la liste des noms de fichier n'est toujours pas a jour

Quel est l'OS sur cette machine ?


--------------------
 Mac Studio M1max 32 Go 1 To - Sonoma - Eizo 27" + Nec 21" - usage PAO
 MBp14 M2pro 16 Go 1 To - Sonoma - iPhone 15 128 - iWatch 6
 abonné VVMac
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 15:32
Message #19


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Citation (g4hd @ 8 Jun 2015, 16:28) *
Citation (niroub @ 8 Jun 2015, 16:17) *
…la liste des noms de fichier n'est toujours pas a jour

Quel est l'OS sur cette machine ?


Ce message a été modifié par niroub - 8 Jun 2015, 15:32.
Fichier(s) joint(s)
Fichier joint  Capture_d_____cran_2015_06_08____16.31.29.png ( 51.1 Ko ) Nombre de téléchargements : 10
 
Go to the top of the page
 
+Quote Post
g4hd
posté 8 Jun 2015, 15:55
Message #20


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 9 716
Inscrit : 9 Nov 2001
Lieu : Pays d’Aix
Membre no 1 255



C'est Yosemite ! donc la solution à ta question existe toute faite, comme je l'ai décrite un peu avant.

Je présume que tes nouveaux noms de fichiers et dossiers ne doivent pas supprimer les anciens, là où ils sont classés.
Aussi, je te suggère de commencer par dupliquer les dossiers à renommer… automatiquement ils vont s'allonger de "_copie".
Là, tu les déplaces ailleurs, sur le bureau, par exemple.
Tu les re-sélectionnes (au moins 2 fichiers) et tu peux les renommer (clic-droit : /renommer X fichiers) avec les options suggérées.

C'est très rapide à faire et tu gardes le contrôle visuel de ce qui se passe.


--------------------
 Mac Studio M1max 32 Go 1 To - Sonoma - Eizo 27" + Nec 21" - usage PAO
 MBp14 M2pro 16 Go 1 To - Sonoma - iPhone 15 128 - iWatch 6
 abonné VVMac
Go to the top of the page
 
+Quote Post
niroub
posté 8 Jun 2015, 16:03
Message #21


Nouveau Membre


Groupe : Membres
Messages : 15
Inscrit : 4 Jun 2015
Membre no 195 526



Citation (g4hd @ 8 Jun 2015, 16:55) *
C'est Yosemite ! donc la solution à ta question existe toute faite, comme je l'ai décrite un peu avant.

Je présume que tes nouveaux noms de fichiers et dossiers ne doivent pas supprimer les anciens, là où ils sont classés.
Aussi, je te suggère de commencer par dupliquer les dossiers à renommer… automatiquement ils vont s'allonger de "_copie".
Là, tu les déplaces ailleurs, sur le bureau, par exemple.
Tu les re-sélectionnes (au moins 2 fichiers) et tu peux les renommer (clic-droit : /renommer X fichiers) avec les options suggérées.

C'est très rapide à faire et tu gardes le contrôle visuel de ce qui se passe.



Oui maintenant que tu as donné cette solution j'ai vite trouvé comment faire (plus besoin de se casser la nenette maintenant - les os pensent à tout)

En ce qui me concerne : je viens dupliquer une archive sur un serveur sur mon bureau et je renomme ce dossier copié

la ou le script est plus intéressant que la fonction de yosémite c'est quand j'ai plusieurs dossier nommé :
150452_1_nomClient_description
150452_2_nomClient_description
150452_3_nomClient_description
...

mais effectivement avec un seul dossier ...Vive Yosemite !!
Go to the top of the page
 
+Quote Post
Cri-cri
posté 8 Jun 2015, 17:21
Message #22


Champollion 2k5
*****

Groupe : Modérateurs
Messages : 7 009
Inscrit : 15 Jun 2003
Lieu : ...partout et nulle part...
Membre no 8 070



La meilleure application de remontage pour Mac proposant tout un ensemble de possibilités (éventuellement combinées), scriptable, etc. , c'est A Better Finder Rename : http://www.publicspace.net/ABetterFinderRename/

Ca vaut 19,95$, mais ce n'est vraiment pas cher pour une imprimerie, et ça les vaut largement.

C'est un de mes outils préférés et cela répond parfaitement à tous les schémas de remontage que j'ai eu à exécuter (dans le cadre arts graphiques également wink.gif )


--------------------


MacBook Pro 16" M1 Max 64Go/2To Sonoma
Don't believe anything you read on the net. Except this. Well, including this, I suppose (Douglas Adams)
Perhaps the answer to the question lies in the question (Police Me - Tori Amos)
Go to the top of the page
 
+Quote Post
trouspinette
posté 15 Jun 2015, 21:58
Message #23


Macbidouilleur d'Or !
*****

Groupe : Rédacteurs
Messages : 5 063
Inscrit : 19 Feb 2002
Lieu : BZH
Membre no 2 083



Citation (Cri-cri @ 8 Jun 2015, 18:21) *
La meilleure application de remontage pour Mac proposant tout un ensemble de possibilités (éventuellement combinées), scriptable, etc. , c'est A Better Finder Rename : http://www.publicspace.net/ABetterFinderRename/

Ca vaut 19,95$, mais ce n'est vraiment pas cher pour une imprimerie, et ça les vaut largement.

C'est un de mes outils préférés et cela répond parfaitement à tous les schémas de remontage que j'ai eu à exécuter (dans le cadre arts graphiques également wink.gif )

Tu m'as devancé :-)

Allez, on couple tout ça avec Hazel !

Pour finir, un p'tit Switch :-)


--------------------
Quis custodiet ipsos custodes ? - Lorsqu'un sujet est résolu, merci d'indiquer [Résolu] dans le titre de votre post !

Luttons contre le style SMS !!!

iPhone 14Pro Max 256 Go iOS 17• MacBook Pro 16 2019 Core i9 - macOS 12.7.2 - 32 GB RAM - 2 TB • @Orange
Linux • OPNSense / pfSense • Une pointe de Windows aussi • Enfocus Switch Expert • callas pdfToolBox
Go to the top of the page
 
+Quote Post
baron
posté 16 Jun 2015, 01:17
Message #24


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 312
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Pour mettre des liens sur tout ça… wink.gif
Citation (trouspinette @ 15 Jun 2015, 22:58) *
Allez, on couple tout ça avec Hazel !
Pour finir, un p'tit Switch :-)

smile.gif


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Fotz
posté 28 Mar 2018, 23:38
Message #25


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 484
Inscrit : 16 Nov 2005
Lieu : Metz
Membre no 50 011



En Powershell (maintenant que Powershell Core est disponible sous Mac OS) ça se fait tout vite et tout bien via le code suivant (écrit en deux minutes) :
Code
[String]$FileLocation = "Chemin_contenant_le_dossier_et_les_sous-dossiers_a_renommer"

[String]$TextToBeReplaced = "140522"
[String]$TextToReplace = "150454"

Get-ChildItem -Path $FileLocation -Recurse |
    Where-Object {$_.Name -like "$TextToBeReplaced*"} |
        ForEach-Object {
            [String]$NewName = $_.Name -replace $TextToBeReplaced, $TextToReplace
            $_ | Rename-Item -NewName $NewName -Force -Confirm:$false
        }


--------------------
Mac Mini Late 2012 Core i7 2,6 GHz, 16 Go RAM, disque dur Fusion Drive 1 To, Mac OS Mojave 10.14.6, Western Digital Red 2 To dans un dock Storeva DriveDock U3 USB 3.0 pour Time Machine

Les jeux-vidéo, c'est comme l'amour. Le plaisir solitaire c'est bien, mais à deux c'est mieux
Go to the top of the page
 
+Quote Post
_Panta
posté 29 Mar 2018, 00:05
Message #26


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 7 796
Inscrit : 24 Dec 2006
Lieu : "Over The Rainbow"
Membre no 76 401



Encore plus simple, il suffit de sélectionner au moins 2 fichiers, puis clic droit/rernommer, et un menu de traitements par lot apparait


--------------------
- Macbook Pro M1 Pro 16.2"
- Macbook Pro TouchBar 15.4" T1 - 512GB/core i7@2,7Ghz - A VENDRE - Clavier neuf et batterie neuve, changés début 2023 (Garanti 6 mois) - SSD Samsung nVme toujours à 2,5GB/s - Gris sidéral
- Macbook Air 13,3" core i5 - iMac 27" core i5 - iPhone14 - Apple Watch 8
- Fbx Delta Devialet
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th March 2024 - 16:19