Bienvenue invité ( Connexion | Inscription )
			
			  4 Apr 2020, 12:16
			
				 Message
					#1
					
				
			 
		 | 
	|
| 
        	
				
        			 Nouveau Membre Groupe : Membres Messages : 22 Inscrit : 5 Sep 2012 Membre no 178 669  | 
       
			
			 
				Bonjour tout le monde, 
			
			
					
		Tout d'abord, je précise que je n'y connais absolument rien en automatisation, scripts, etc. et que je ne connais donc pas du tout les logiciels/outils qui me permettraient de faire ce que je souhaite faire. Je connais Automator de nom et qui a l'air très simple d'utilisation, mais à première vue, il ne m'aidera pas de le cas présent. Je cherche donc une autre solution mais j'aurais besoin d'un coup de pouce pour trouver l'outil qui m'aidera à régler mon problème. Pour résumer : J'aimerais automatiser le tri de 18000 fichiers .ALS (fichiers Ableton Live) potentiellement endommagés. Si le logiciel signale le fichier comme étant endommagé, alors il est transféré dans un autre dossier. Sinon, rien n'est fait. Le contexte : J'ai fait une mise à jour de mon OS en clean install. J'ai sauvegarder les fichiers que je souhaitais sauver par un habile copié-collé (oui, je n'ai pas utilisé Time Machine, que j'utilise habituellement, pour des raisons indépendantes de Time Machine en lui-même Je tente une récupération avec Disk Drill. Parmi les fichiers que je souhaite récupérer, il y a des fichiers .ALS qui sont utilisés par le logiciel de MAO Ableton Live. Disk Drill en a trouvé 18000 alors qu'à la base, je devais en avoir une 100 aine au maximum. Je teste les 50 premiers fichiers, à l'ouverture, Ableton Live me les signalent tous comme étant endommagés. L'opération est fastidieuse et j'aimerais pouvoir automatiser la tâche. Ce que je souhaite faire pour chaque fichier : 1- Ouvrir le fichier avec Ableton Live. 2- a- A l'ouverture, si le fichier est endommagé, Ableton Live le signale par le message suivant : ![]() 2- b- Sinon le fichier s'ouvre normalement. 3- a- Si le fichier est signalé comme étant endommagé, le fichier est transféré vers un dossier. 3- b- Si le fichier est ouvert correctement, rien n'est fait. Si vous avez une autre méthode à proposer, je suis totalement preneur !! J'allais poster dans la section "Technologies Apple" mais j'ai l'impression que ça correspond mieux ici. N'hésitez pas à me dire si je dois changer le post de section. Merci d'avance pour vos retours, zorkwolf Ce message a été modifié par zorkwolf - 4 Apr 2020, 12:19.  | 
	
| 
			
			 | 
	|
![]()  | 
	
			
			  4 Apr 2020, 14:54
			
				 Message
					#2
					
				
			 
		 | 
	|
| 
        	
				
					 Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 989 Inscrit : 22 Aug 2002 Lieu : 06220 VALLAURIS Membre no 3 217  | 
       
			
			 
				Bonjour 
			
			
					
		Ce script a été testé avec la version d'essai gratuite de l'application. Il faudra sans doute y modifier le nom de celle-ci Attention, TOUTES les lignes sont à conserver. CODE ---------------------------------------------------------------- 
				
				
				
			use AppleScript version "2.5" use framework "Foundation" use scripting additions -- Yvan KOENIG (VALLAURIS, France) samedi 4 avril 2020 15:51:22 ---------------------------------------------------------------- property |⌘| : a reference to current application my Germaine() on Germaine() set ableton to ((path to applications folder as string) & "Ableton Live 10 Trial.app:") as «class furl» -- Éditer le nom de l'application set p2d to path to desktop set sourceFolder to (choose folder "Sélectionner le dossier à analyser" default location p2d) as string set junkFolder to (choose folder "Sélectionner le dossier où ranger les corrompus" default location ((p2d as string) & "Junk:") as alias) as string set aBundle to ((path to library folder from system domain as string) & "Frameworks:ApplicationServices.framework:Versions:Current:Frameworks:HIServ ices.framework:") as «class furl» set red_loc to localized string "Label_Name_6" from table "Labels" in bundle aBundle -- récupère la chaîne locale pour "Red" set fileManager to a reference to |⌘|'s NSFileManager's defaultManager() -- set skipsSubdirectoryDescendants to |⌘|'s NSDirectoryEnumerationSkipsSubdirectoryDescendants as integer --> 1 set skipsPackageDescendants to |⌘|'s NSDirectoryEnumerationSkipsPackageDescendants as integer --> 2 set skipsHiddenFiles to |⌘|'s NSDirectoryEnumerationSkipsHiddenFiles as integer --> 4 set theOptions to skipsPackageDescendants + skipsHiddenFiles set NSURLIsDirectoryKey to |⌘|'s NSURLIsDirectoryKey set keysToRequest to {NSURLIsDirectoryKey} tell me to display notification "Commence à scanner le dossier" & linefeed & (current date) set theURL to (|⌘|'s NSArray's arrayWithObject:(sourceFolder as «class furl»))'s firstObject() -- test désactivé parce que, étant défini par Choose folder, le dossier existe -- if (theURL's checkResourceIsReachableAndReturnError:(missing value)) as boolean is false then error "The folder “" & sourceFolder & "” isn't available." set junkURL to (|⌘|'s NSArray's arrayWithObject:(junkFolder as «class furl»))'s firstObject() -- test désactivé parce que, étant défini par Choose folder, le dossier existe -- if (junkURL's checkResourceIsReachableAndReturnError:(missing value)) as boolean is false then error "The folder “" & junkFolder & "” isn't available." set allURLs to (fileManager's enumeratorAtURL:theURL includingPropertiesForKeys:keysToRequest options:theOptions errorHandler:(missing value))'s allObjects() if allURLs is equal to missing value then error (theError's localizedDescription() as text) tell me to display notification "trouvé " & (count allURLs) & " URLs." & linefeed & (current date) set theFormat to "(self.path ENDSWITH[c] '.ALS')" -- pour lister les fichiers dont le nom se termine par ".ALS" set thePredicate to |⌘|'s NSPredicate's predicateWithFormat:theFormat set fichiersALS to (allURLs's filteredArrayUsingPredicate:thePredicate) tell me to display notification "trouvé " & (count fichiersALS) & " fichiers .ALS." & linefeed & (current date) repeat with aURL in fichiersALS set aFurl to aURL as «class furl» tell application "Finder" to open aFurl using ableton delay 0.5 tell application "System Events" to tell process "Live" set frontmost to true repeat set nbWindows to count windows if nbWindows > 0 then exit repeat delay 0.1 end repeat if exists (first window whose subrole is "AXDialog") then -- attribue un double tag set {theResult, theError} to (aURL's setResourceValue:{red_loc, "ALS corrompu"} forKey:(current application's NSURLTagNamesKey) |error|:(specifier)) -- déplace le fichier (my moveFromURL:aURL toFolder:junkURL) try repeat 20 times if (count windows) = 0 then exit repeat tell window 1 if exists button 1 then click button 1 else keystroke return end if end tell delay 0.2 end repeat on error errmsg number errNbr -- tell application "Finder" to display dialog errmsg -- "Erreur dans System Events : Il est impossible d’obtenir process \"Live\"." end try end if end tell -- "System Events"… end repeat end Germaine #===== on setTags:tagList forPath:thisURL set {theResult, theError} to thisURL's setResourceValue:tagList forKey:(current application's NSURLTagNamesKey) |error|:(reference) if theResult as boolean is false then error (theError's |localizedDescription|() as text) end setTags:forPath: #===== on moveFromURL:sourceURL toFolder:junkURL set theFileManager to |⌘|'s NSFileManager's |defaultManager|() set origName to sourceURL's |lastPathComponent|() as string --> "trucmuche.ALS" set bareName to text 1 thru -5 of origName tell me to tell (current date) to set stamp to (((its year) * 10000 + (its month) * 100 + (its day)) as text) & "_" & text 2 thru -1 of ((1000000 + (its hours) * 10000 + (its minutes) * 100 + (its seconds)) as text) -- par sécurité, intercale date-time pour éviter doublons set destName to bareName & "_" & stamp & ".ALS" --> "trucmuche_20200404_154332.ALS" set destinationURL to junkURL's URLByAppendingPathComponent:destName set {theResult, theError} to (theFileManager's moveItemAtURL:sourceURL toURL:destinationURL |error|:(reference)) end moveFromURL:toFolder: #=====  | 
	
| 
			
			 | 
	|
 zorkwolf   Automatisation : ouverture et tri de fichiers si endommagé [Résolu]   4 Apr 2020, 12:16
 
 zorkwolf   Bonjour Yvan et merci beaucoup pour votre réponse...   4 Apr 2020, 15:29
 
 KOENIG Yvan   Non, il ne m'a pas semblé utile de coder la c...   4 Apr 2020, 16:48
 
 zorkwolf   Je viens de lancer le script. En effet, aucun souc...   4 Apr 2020, 17:22
 
 KOENIG Yvan   Bonjour
Le saut de ligne incongru a été introdu...   5 Apr 2020, 13:08
 
 baron   [H.S.]Citation (KOENIG Yvan @ 5 Apr 2020, 14...   5 Apr 2020, 14:05
 
 KOENIG Yvan   Citation (baron @ 5 Apr 2020, 14:05) [H.S...   5 Apr 2020, 14:43
 
 KOENIG Yvan   Test du comportement du bloc généré par l'o...   5 Apr 2020, 18:55
 
 baron   Vérification faite, c'est plutôt le contrair...   5 Apr 2020, 19:14
 
 zorkwolf   Bonjour,
Citation Au pire vous pouvez remplacer l...   6 Apr 2020, 00:57
 
 KOENIG Yvan   Merci pour le retour.
Ableton n'est pas compa...   6 Apr 2020, 10:47
 
 baron   Citation (KOENIG Yvan @ 6 Apr 2020, 11:42...   6 Apr 2020, 10:49
 
 KOENIG Yvan   Citation (baron @ 6 Apr 2020, 10:49) Cita...   6 Apr 2020, 14:07
 
 zorkwolf   Le dossier étant légèrement trop volumineux pou...   6 Apr 2020, 12:19
 
 ades   bonjour, déterrage…J'ai un peu le meme blem...   10 Dec 2020, 12:54
 
 KOENIG Yvan   Citation (ades @ 10 Dec 2020, 13:54) bonj...   11 Dec 2020, 18:24![]() ![]()  | 
	
| Nous sommes le : 4th November 2025 - 11:30 |