IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> [Résolu] Ligne de commande pour supprimer un niveau de (sous-)dossiers, Un super script pour regrouper ses morceaux iTunes par artiste
Options
Hervouille
posté 26 Jan 2022, 13:14
Message #1


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Bonjour,

Je poste cette question dans la section OSX car elle est plus générale que la seule gestion de bibliothèque musicale iTunes.

Mon dossier iTunes Media est actuellement organisé comme suit (organisation classique d'iTunes) :

Artiste 1
- Album A1
-- Morceaux M11, M12, M13, etc.
- Album A2
-- Morceaux M21, M22, M23, etc.
Artiste 2
etc.

Je souhaite faire une copie de tous mes morceaux sur un support externe, tout en "remontant" tous les morceaux d'un niveau, donc sans le niveau hiérarchique intermédiaire des albums : chaque dossier Artiste comprendra la totalité des morceaux de cet artiste.

J'imagine qu'il faut faire appel à la commande cp mais la lecture du man ne m'a pas donné la solution, peut-être faut-il un script ?
J'en avais utilisé un (qu'un internaute m'avait gentiment écrit) il y a quelques années pour une manip similaire, mais depuis le shell d'OSX a changé.

Merci d'avance aux unixiens.

Ce message a été modifié par Hervouille - 28 Jan 2022, 16:50.


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
frankie00
posté 26 Jan 2022, 14:16
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 944
Inscrit : 22 Dec 2011
Lieu : Paris
Membre no 173 181



J'ai pas le courage ni le temps de me plonger là-dedans mais normalement la commande -r -pour récursif- permet ce genre d'opérations
Je te conseille de faire des essais avant de l'exécuter sur tes dossiers iTunes et leur arborescence.
Cette commande -r est plutôt descendante d'après mes souvenirs lors de son exécution: peut-être pas ce que tu cherches ou alors ça reviendrait au même ?
Fais des essais avant

Ce message a été modifié par frankie00 - 26 Jan 2022, 14:18.


--------------------
¶ Mon blog informatique est la Vague en Creux
¶ MacBook Pro de 2021 avec OS 14.4 Sonoma, 13 pouces, 16 Go de mémoire RAM, processeur M1, SSD de 500Go
¶ Autre MacBook Pro de 2015 avec OS 10.14.5 Mojave 15 pouces Retina, 16 Go de mémoire RAM, processeur quadri-core 2.5 GHz Intel Core , double carte graphique et SSD 512 Go
Nous sommes 2 sur ce site: Jean Pass & Dem Eilleur qui vous saluons bien !“
Go to the top of the page
 
+Quote Post
Hervouille
posté 26 Jan 2022, 16:39
Message #3


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Citation (frankie00 @ 26 Jan 2022, 14:16) *
Cette commande -r est plutôt descendante d'après mes souvenirs lors de son exécution: peut-être pas ce que tu cherches

Effectivement ça ne semble pas répondre à ma demande : si j'ai bien compris le man, cp -R va faire une copie en allant chercher dans tous les sous-dossiers et tous les niveaux hiérarchiques, alors que moi je veux tout regrouper sur un sous-niveau.


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
frankie00
posté 26 Jan 2022, 17:36
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 944
Inscrit : 22 Dec 2011
Lieu : Paris
Membre no 173 181



Tu dois pouvoir bidouiller quelque chose.
Si tu n'as que deux niveaux d'arborescence et que tu veux juste copier tous les morceaux sur le support externe, je te conseillerais l'algorithme suivant.
Algorithme suggéré:
Copier (pour tous les artistes A* ( pour tous les albums M* dans A* leur contenu dans dossier_support_externe))
Effectivement il y a 2 boucles donc AppleScript est nécessaire

Faire des essais avant parait judicieux avant de démarrer l'usine dans sa totalité


--------------------
¶ Mon blog informatique est la Vague en Creux
¶ MacBook Pro de 2021 avec OS 14.4 Sonoma, 13 pouces, 16 Go de mémoire RAM, processeur M1, SSD de 500Go
¶ Autre MacBook Pro de 2015 avec OS 10.14.5 Mojave 15 pouces Retina, 16 Go de mémoire RAM, processeur quadri-core 2.5 GHz Intel Core , double carte graphique et SSD 512 Go
Nous sommes 2 sur ce site: Jean Pass & Dem Eilleur qui vous saluons bien !“
Go to the top of the page
 
+Quote Post
jeanjd63
posté 26 Jan 2022, 17:51
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 11 698
Inscrit : 15 Nov 2007
Lieu : Auvergne-Rhône-Alpe.
Membre no 99 922



Salut.

Une commande find devrait répondre à tes besoins.

sudo find /Volumes/chemin d'accès/Artiste -type f -iname "*.mp3" -exec cp -av -- "{}" /Volumes/destination \;

On recherche (sudo pour éviter les erreurs d'autorisation) : sudo find
depuis le répertoire d'origine : /Volumes/chemin d'accès/Artiste
les fichiers "normaux" : -type f
ayant pour extension mp3 (écrite en Majuscles ou minuscules) : -iname "*.mp3"
Et on les copie (en affichant le résultat de chaque copie) : -exec cp -av -- "{}"
sur le volume de destination : /Volumes/destination
et ceci qui est indispensable pour terminer la commande -exec : \;

Si tu es tenté, à toi d'adapter.

Ce message a été modifié par jeanjd63 - 26 Jan 2022, 18:00.
Go to the top of the page
 
+Quote Post
Hervouille
posté 26 Jan 2022, 21:02
Message #6


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Merci Jean.
J'ai testé, la commande fonctionne mais le résultat n'est pas ce que j'attendais.

J'ai fait un test en mettant dans un dossier "Musik" de mon répertoire Home (où Mxxx sont les morceaux en format AAC) :
Artiste 1 / Album 11 / M111, M112 et M113,
_______ / Album 12 / M121, M122 et M123
Artiste 2 / Album 21 / M211, M212 et M213
_______ / Album 22 / M221, M222 et M223

J'ai aussi créé un dossier cible ~/test, et utilisé la commande :
sudo find ~/Musik -type f -iname "*.m4a" -exec cp -av -- "{}" ~/test \;

Résultat : tous les morceaux (les 12 fichiers ci-dessus) ont été mis dans ~/test, alors que j'aurais voulu y trouver :
Artiste 1 / M111, M112, M113, M121, M122 et M123
Artiste 2 / M211, M212, M213, M221, M222 et M223



--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
jeanjd63
posté 26 Jan 2022, 21:27
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 11 698
Inscrit : 15 Nov 2007
Lieu : Auvergne-Rhône-Alpe.
Membre no 99 922



En effet.
J'ai bien précisé que le répertoire de départ est celui de l'artiste et non le répertoire parent.
Moralité cette commande est à passer pour chaque artiste.
Go to the top of the page
 
+Quote Post
frankie00
posté 26 Jan 2022, 21:57
Message #8


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 944
Inscrit : 22 Dec 2011
Lieu : Paris
Membre no 173 181



Avec cette commande de Jean jean, tu fais un Applescript -simple!- qui comporte une seule boucle et où tu iras chercher tous les artistes dans le dossier de départ et appliqueras la commande sudo find ... qu'il t'a donnée dans le corps principal de la boucle


--------------------
¶ Mon blog informatique est la Vague en Creux
¶ MacBook Pro de 2021 avec OS 14.4 Sonoma, 13 pouces, 16 Go de mémoire RAM, processeur M1, SSD de 500Go
¶ Autre MacBook Pro de 2015 avec OS 10.14.5 Mojave 15 pouces Retina, 16 Go de mémoire RAM, processeur quadri-core 2.5 GHz Intel Core , double carte graphique et SSD 512 Go
Nous sommes 2 sur ce site: Jean Pass & Dem Eilleur qui vous saluons bien !“
Go to the top of the page
 
+Quote Post
Hervouille
posté 27 Jan 2022, 10:19
Message #9


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Citation (jeanjd63 @ 26 Jan 2022, 21:27) *
cette commande est à passer pour chaque artiste.

Pas de souci, je n'en ai que... 234 laugh.gif

Citation (frankie00 @ 26 Jan 2022, 21:57) *
tu fais un Applescript -simple!-

...quand on parle Applescript unsure.gif


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
frankie00
posté 27 Jan 2022, 10:39
Message #10


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 944
Inscrit : 22 Dec 2011
Lieu : Paris
Membre no 173 181



Désolé mais dans ton cas je vois que ça comme solution
Il s'agirait d'un programme Applescript assez simple à une boucle while contenant l'instruction dans le corps du programme et que t'a proposé Jean jean
Ça doit marcher sans coup férir.
J'espère que quelqu'un va te faire ça ici ou ailleurs. Si j'ai le temps je vais regarder
==>pour tous les artistes Artiste dans le dossier iTunes Media ( sudo find /Volumes/chemin d'accès/Artiste -type f -iname "*.mp3" -exec cp -av -- "{}" /Volumes/destination \;)

Ce message a été modifié par frankie00 - 27 Jan 2022, 10:43.


--------------------
¶ Mon blog informatique est la Vague en Creux
¶ MacBook Pro de 2021 avec OS 14.4 Sonoma, 13 pouces, 16 Go de mémoire RAM, processeur M1, SSD de 500Go
¶ Autre MacBook Pro de 2015 avec OS 10.14.5 Mojave 15 pouces Retina, 16 Go de mémoire RAM, processeur quadri-core 2.5 GHz Intel Core , double carte graphique et SSD 512 Go
Nous sommes 2 sur ce site: Jean Pass & Dem Eilleur qui vous saluons bien !“
Go to the top of the page
 
+Quote Post
jeanjd63
posté 27 Jan 2022, 11:22
Message #11


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 11 698
Inscrit : 15 Nov 2007
Lieu : Auvergne-Rhône-Alpe.
Membre no 99 922



Pas si simple quand même.
Il faut récupérer pour chaque boucle (Artiste) son nom et l'ajouter dans la destination.

Cela ne dois pas être insurmontable pour un pisseur de ligne spécialiste AppleScript laugh.gif
Go to the top of the page
 
+Quote Post
frankie00
posté 27 Jan 2022, 13:26
Message #12


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 944
Inscrit : 22 Dec 2011
Lieu : Paris
Membre no 173 181



Il y a une instruction qui récupère tous les sous-dossiers d'un dossier et qui fait une ou deux lignes dans une boucle While... end while.
En fait il suffit de consulter une bonne dizaine de programmes Applescript presque au hasard et on devrait forcément tomber dessus: j'en ai pas fait depuis longtemps mais je me souviens l'avoir vue et c'est plutôt simple comme syntaxe dans mes souvenirs
Faudrait que je cherche...


--------------------
¶ Mon blog informatique est la Vague en Creux
¶ MacBook Pro de 2021 avec OS 14.4 Sonoma, 13 pouces, 16 Go de mémoire RAM, processeur M1, SSD de 500Go
¶ Autre MacBook Pro de 2015 avec OS 10.14.5 Mojave 15 pouces Retina, 16 Go de mémoire RAM, processeur quadri-core 2.5 GHz Intel Core , double carte graphique et SSD 512 Go
Nous sommes 2 sur ce site: Jean Pass & Dem Eilleur qui vous saluons bien !“
Go to the top of the page
 
+Quote Post
Zeltron54
posté 27 Jan 2022, 19:03
Message #13


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour,
@Hervouille

Tu peux essayer ce petit applescript qui au lancement te demande de sélectionner le dossier contenant les différents artistes (le dossier "iTunes Music") puis te demande de sélectionner un dossier vide pour la destination.
Il transfère tous les fichiers puis affiche un message quand tout est terminé.

A tester !

Code
tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les dossiers musiques (iTunes Music)"
    set cible to choose folder with prompt "Sélectionnez le dossier de destination"
    set cible to cible as string
    set a to {}
    set a to folders in Chemin
    set nb to count item of a
    
    repeat with i from 1 to nb
        set aa to text item i of a as string
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {":"}
        set ledossier to text item -2 of aa
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
        make new folder at cible with properties {name:ledossier}
        set lacible to cible & ledossier
        set Chemin to Chemin as string
        set encours1 to Chemin & ledossier
        set encours to encours1 as alias
        set les_fichiers to files of encours
        
        my inspecter(encours, lacible)
        
    end repeat
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

on inspecter(encours, lacible)
    tell application "Finder"
        set les_fichiers to files of encours
        repeat with chaque_fichier in les_fichiers
            set chaque_fichier to chaque_fichier as string
            duplicate chaque_fichier to lacible
        end repeat
        set les_dossiers to folders of encours
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier, lacible)
        end repeat
    end tell
end inspecter


Ce message a été modifié par Zeltron54 - 27 Jan 2022, 19:05.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
frankie00
posté 27 Jan 2022, 19:22
Message #14


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 944
Inscrit : 22 Dec 2011
Lieu : Paris
Membre no 173 181



J'ai essayé chez moi ça a l'air de marcher biggrin.gif
pratique quand on veut tout transférer en bloc comme sa Biblio musique sur un iPod par exemple


--------------------
¶ Mon blog informatique est la Vague en Creux
¶ MacBook Pro de 2021 avec OS 14.4 Sonoma, 13 pouces, 16 Go de mémoire RAM, processeur M1, SSD de 500Go
¶ Autre MacBook Pro de 2015 avec OS 10.14.5 Mojave 15 pouces Retina, 16 Go de mémoire RAM, processeur quadri-core 2.5 GHz Intel Core , double carte graphique et SSD 512 Go
Nous sommes 2 sur ce site: Jean Pass & Dem Eilleur qui vous saluons bien !“
Go to the top of the page
 
+Quote Post
Hervouille
posté 27 Jan 2022, 21:51
Message #15


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Merci Zeltron, effectivement ça ne s'invente pas !
Pour lancer le script, ça se fait dans le Terminal ?


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
Zeltron54
posté 27 Jan 2022, 22:11
Message #16


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Pour utiliser ce script.
Ouvrir l’application “Editeur de script” qui est dans Application—>Utilitaires
Choisir le bouton en bas à gauche “Nouveau document”, dans la fenêtre qui s’ouvre faire un copier-coller du script.
Cliquer sur le bouton en haut à gauche “Exécuter”
Aux demandes de choix des dossiers, tu navigues jusqu'au dossier voulu..
Attendre que le script te prévienne qu’il à terminé.

Ce message a été modifié par Zeltron54 - 27 Jan 2022, 22:12.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
Hervouille
posté 28 Jan 2022, 16:49
Message #17


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Merci Zeltron pour les explications nécessaires pour le neuneu que je suis.

J'ai suivi tes instructions.
Première tentative d'exécution : message d'erreur me disant un truc du genre "impossible d'établir la connexion", et surlignage de la commande "choose folder with prompt "Sélectionnez le dossier contenant les dossiers musiques (iTunes Music)".
Au deuxième essai ça a marché, et le résultat est exactement celui que j'attendais, thumb.gif et merci !


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
Zeltron54
posté 28 Jan 2022, 16:54
Message #18


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Content pour toi !


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
Hervouille
posté 28 Jan 2022, 17:39
Message #19


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Je me suis réjoui un peu vite (en fait je n'avais testé que sur qq artistes).
Si on a plusieurs fois le même titre sur des albums différents (ça arrive), ça bloque le script qui dit "Erreur dans Finder : Un élément du même nom existe déjà à cet emplacement."
Il suffit alors d'intervenir dans le Finder pour garder le morceau que l'on veut, ou en renommer un des deux.
Le problème est que le script est ensuite bloqué, car si on le relance avec le même dossier cible, il reprend au début du dossier source et évidemment il bloque puisqu'il a déjà traité les artistes avant le premier blocage.
Il faudrait qu'il y ait moyen de reprendre là où il s'est arrêté, après gestion du doublon.


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
Zeltron54
posté 28 Jan 2022, 17:55
Message #20


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Je vais regarder pour ajouter un contrôle d'erreur et qu'il fasse un fichier texte qui le récapitule.
A la fin, il suffira de reprendre à la main les fichiers listés dans le fichier texte.
Dès que j'ai un moment je regarde ça.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
Hervouille
posté 28 Jan 2022, 18:00
Message #21


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Citation (Zeltron54 @ 28 Jan 2022, 17:55) *
Dès que j'ai un moment je regarde ça.

Y'a pas le feu : j'ai pu traiter tous les artistes que je voulais, en supprimant du dossier source les artistes déjà traités au moment de chaque erreur pour doublon. Il n'y en avait pas tant que ça en fait...

D'autre part, en fouillant dans mon dossier iTunes je m'aperçois que j'avais déjà un shell script qu'un programmeur m'avait fait il y a qq années (9 ans, d'où l'oubli), qui fait peut-être la même chose. Je te le soumets ci-dessous pour que tu me dises ce que tu y comprends, avec mes excuses si je t'ai fait bosser pour rien :

Code
for entry in *
do
    echo "$entry"
    cd "$entry"
    for entry2 in *
    do
          echo "$entry2"
          cd "$entry2"
          mv * ..
          cd ..
          rm -d "$entry2"
    done
done


Ce message a été modifié par Hervouille - 28 Jan 2022, 18:04.


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
Zeltron54
posté 28 Jan 2022, 18:06
Message #22


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Voila le script modifié qui écrit un fichier "Les erreurs.txt" sur le bureau, contenant une ligne par fichiers non transféré.

Pour le script shell, je ne connaît pas trop ...

Code
tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les dossiers musiques (iTunes Music)"
    set cible to choose folder with prompt "Sélectionnez le dossier de destination"
    set cible to cible as string
    set a to {}
    set a to folders in Chemin
    set nb to count item of a
    
    repeat with i from 1 to nb
        set aa to text item i of a as string
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {":"}
        set ledossier to text item -2 of aa
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
        make new folder at cible with properties {name:ledossier}
        set lacible to cible & ledossier
        set Chemin to Chemin as string
        set encours1 to Chemin & ledossier
        set encours to encours1 as alias
        set les_fichiers to files of encours
        
        my inspecter(encours, lacible)
        
    end repeat
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

on inspecter(encours, lacible)
    tell application "Finder"
        set les_fichiers to files of encours
        repeat with chaque_fichier in les_fichiers
            set chaque_fichier to chaque_fichier as string
            try
                duplicate chaque_fichier to lacible
                
            on error
                set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
                write "Le fichier: " & chaque_fichier & " n'a pas été copie" & return to lelog starting at eof
                close access lelog
                
            end try
        end repeat
        set les_dossiers to folders of encours
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier, lacible)
        end repeat
    end tell
end inspecter


Ce message a été modifié par Zeltron54 - 28 Jan 2022, 18:10.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
TERRY
posté 29 Jan 2022, 12:00
Message #23


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 064
Inscrit : 8 Jan 2003
Lieu : Ici...
Membre no 5 523



Pour info, ici beaucoup de scripts iTunes déjà tout faits, assez remarquables d'efficacité, et à un prix tout à fait abordable.
Go to the top of the page
 
+Quote Post
Hervouille
posté 29 Jan 2022, 13:31
Message #24


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Merci Terry, sacrée mine en effet, je vais explorer ça...


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
Hervouille
posté 29 Jan 2022, 21:43
Message #25


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



J'en profite pour poser une question connexe plutôt que d'ouvrir un nouveau sujet (mais si les modérateurs préfèrent cette option, je me range à leur avis) :
Pour supprimer les "resource forks" des fichiers (fichiers commençant par ._) j'ai voulu utiliser la commande unix "rm ._*".
Ça marche si je me place dans un des dossiers Artiste, mais j'ai voulu le faire en une fois pour tous les artistes, depuis la racine de la clef USB qui contient tout ça.
J'ai donc tenté "rm -R ._*" mais réponse : "._*: No such file or directory".
Je pensais que l'option -R (recursive) allait justement fouiller dans les niveaux inférieurs, ben non.
Quelle est la bonne commande ?

Ce message a été modifié par Hervouille - 29 Jan 2022, 21:43.


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
jeanjd63
posté 29 Jan 2022, 22:54
Message #26


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 11 698
Inscrit : 15 Nov 2007
Lieu : Auvergne-Rhône-Alpe.
Membre no 99 922



Aller un petit find de derrière les fagots.

Code
find /Volumes/nom_de_la_cle -name "._*" -exec rm -r {} +

Editus moderatus :
excl.gif Commande dangereuse si mal utilisée.
Après avoir trouvé les fichiers recherchés, elle les efface récursivement sans avertissement ni confirmation.
Raison de l'édition : Mieux vaut prévenir… surtout si le Tergal ne craint rien
Go to the top of the page
 
+Quote Post
jeanjd63
posté 30 Jan 2022, 07:52
Message #27


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 11 698
Inscrit : 15 Nov 2007
Lieu : Auvergne-Rhône-Alpe.
Membre no 99 922



Citation (jeanjd63 @ 29 Jan 2022, 22:54) *
Aller un petit find de derrière les fagots.

Code
find /Volumes/nom_de_la_cle -name "._*" -exec rm -r {} +

Editus moderatus :
excl.gif Commande dangereuse si mal utilisée.
Après avoir trouvé les fichiers recherchés, elle les efface récursivement sans avertissement ni confirmation.


Bien sûr que toutes ces commandes sont dangereuses, et si l'on veut savoir ce que va faire la commande, on peut au préalable faire :

Code
find /Volumes/nom_de_la_cle -name "._*" -exec ls -l {} +
Go to the top of the page
 
+Quote Post
Hervouille
posté 30 Jan 2022, 08:42
Message #28


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 476
Inscrit : 22 Nov 2005
Membre no 50 351



Merci Jean, impec une fois de plus !


--------------------
Mac Mini fin 2012, Core i5 2,5 GHz, RAM 16 Go, SSD Crucial MX500 500 Go, OS X 10.14.6.
MacBook Pro 17" mi-2007, Intel Core 2 Duo 2.4 GHz, RAM 4 Go, MacOS X 10.5.8.
iPhone 13 mini, iOS 15.6.1
Go to the top of the page
 
+Quote Post
jeanjd63
posté 30 Jan 2022, 09:16
Message #29


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 11 698
Inscrit : 15 Nov 2007
Lieu : Auvergne-Rhône-Alpe.
Membre no 99 922



Pas de quoi. smile.gif
Go to the top of the page
 
+Quote Post
baron
posté 30 Jan 2022, 11:06
Message #30


Macbidouilleur d'Or !
*****

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



thumb.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

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 : 29th March 2024 - 13:08