Aller au contenu


Photo

UNITILITAIRE


  • Please log in to reply
8 replies to this topic

#1 csimple0-N

csimple0-N

    Habitué(e)

  • Membres
  • PipPip
  • 172 Messages :

Posté 17 octobre 2012 - 14:05

Bonjour

Fonctionnement du code.

Ne modifie rien, sur votre ordinateur.

Recherche le contenu des vrais corbeilles gérées par la corbeille du Dock (c'est juste un chef qui ne connaît qu'un ordre VIDEZ LES CORBEILLES), c'est tout ou rien.

Permet de contrôler dans la corbeille du Dock, à qu'elle corbeille appartient certains fichiers.

Contrôle les corbeilles vides, pleines, qui ne sont pas encore créés.

Ne prend en compte que les corbeilles de la session ouverte.

Il arrive que le trie dans une corbeille soit affiché de façon bizarre (si l'on utilise une même corbeille sans la vider avec plusieurs ordinateurs utilisant le même N° de session).
ATTENTION: alors un seul ordinateur vide cette corbeille.

Testé avec Léopard 1.5.8 et Mountain Lion 10.8 sans problème (normal c'est moi qui ai écrit le code, donc j'évite de faire des erreurs).

Écrit, juste pour comprendre le fonctionnement de la corbeille du Dock.

C'est un code, totalement inutile donc ça place est à ranger dans la corbeille après l'avoir testé (si vous l'osez).

Dans le code, beaucoup de commentaires, pour comprendre l'écriture de ce code à ma façon.

Ce code est sans doutes pas parfait, mais rien ne vous empèche de me signaler les erreurs trouvées.
Le code
-- Corbeilles OS X
-- Légal Jean Louis (créé le 26 Février 2009 (dernière modification pour Montain Lion le 15 Octobre 2012))
-- Version 0.0.0000002 α (Testé avec Leopard 10.5.5 et Mountain Lion 10.8)

-- \\\ INITIALISATION DES VARIABLES ///

set lire to "Chaque sessions possèdent une 
corbeille .Trash dans la petite maison.
━━━━━━━━━━━━━━━━━━━━━━━━
Les dossiers .Trashes sont PAS DES CORBEILLES.
Ils contiennent les corbeilles des sessions.
Pour noms: 501, 502, etc…
━━━━━━━━━━━━━━━━━━━━━━━━
Le dossier .Trashes du volume de démarrage     
(si existe) n'est utilisé que si l'on démarre sur 
un autre volume.
━━━━━━━━━━━━━━━━━━━━━━━━
Ne jamais éliminer les dossiers .Trashes 
(invisibles normalement) si d'autres sessions 
utilisent les mêmes volumes, car alors vous 
supprimez les corbeilles de toutes les sessions.
━━━━━━━━━━━━━━━━━━━━━━━━
La corbeille du Dock gère toutes ces corbeilles.
Elle sait pas vider que celle de votre choix.
QUE LES VOLUMES  MONTÉS PRIS EN COMPTE.
━━━━━━━━━━━━━━━━━━━━━━━━"
set vide to "Corbeille de ce volume vide" -- Texte si Corbeille vide
set moi to do shell script "echo $USER" -- Lecture du nom réel du dossier icône petite maison
set num_Session to do shell script "echo $UID" --  Lecture du N° de la session utilisée
set eviter to {"home", "net"} -- Ne prend pas en compte ces déclarations de volumes (à la racine des volumes)
set trait to "━━━━━━━━━━━━━━━━━━━━━━━━" -- Pour une lecture plus facile
set affichage to {} -- Pour affichage dans une fenêtre réglable suivant la longeur des noms (••• la faute à Mountain Lion)
set doublon to false -- Contrôle si la corbeille du volume lue, est utilisée par plusieurs volumes de démarrage sans être vidé
set ctrl to "Existe" -- Contrôle si la corbeille de session existe sur chaque volumes

-- \\\ JE CONTRÔLE LES CORBEILLES NÉCESSAIRES SUR CETTE SESSION DE TOUTES LES PARTITIONS MONTÉS ///

try -- Pour la gestion des erreurs
	
	-- Liste des partitions montés utilisables par cette session et nom du volume de démarrage
	tell application "System Events" to set {diskList, startup_Disk} to {(get name of disks), (get name of startup disk)}
	
	set liste to "Volume --> " & item 1 of diskList & " (Startup disk)" & return & trait & return & "--> " & startup_Disk & ":Utilisateurs:" & moi & ":.Trash:" & return
	-- Initialisation de la variable avec le chemin de la corbeille de la partition de démarrage
	set quoi to (do shell script "cd ~/.Trash;ls ") -- Contenu de la corbeille de la session de démarrage
	
	if quoi is "" then set quoi to vide -- Etat de la corbeille (contrôle si vide)
	set liste to liste & quoi & return & trait & return -- Ecriture dans la variable du résultat trouvé (vide où non)
	
	-- Lecture des autres partitions (1 = partition de démarrage, déjà pris en compte (n'utilise pas le même nom de corbeille))
	repeat with i from 2 to count of diskList
		set nom to item i of diskList -- Nom de la partition lue
		
		try -- Si corbelle trouvé, erreur
			set ctrl to (do shell script "cd /Volumes/\"" & nom & "\"/.Trashes/" & ";ls ") as string
		end try
		
		if ctrl is "" then -- La corbeille n'est pas trouvèe
			set liste to liste & "--> " & nom & ":.Trashes:" & num_Session & ":" & return & "Corbeille non  trouvé" & return & trait & return
		else -- Corbeille lue trouvée
			
			if (nom as string) is not in eviter then -- Prise en compte que des corbeilles que vous utilisez (pour votre session)
				set quoi to (do shell script "cd /Volumes/\"" & nom & "\"/.Trashes/" & num_Session & ";ls ") as string -- Contenu de la corbeille lue 
				
				
				if quoi is not "" then
					-- Ecriture du nom de la partition lue avec son sous-dossier du N° de session
					set liste to liste & "--> " & nom & ":.Trashes:" & num_Session & ":" & return & quoi & return & trait & return
					
					set doublon to true -- Si plusieurs volumes de démarrage utilisent le même N° de session
				else
					-- Corbeille vide, mais un ou plusieurs sous-dossiers avec des N° de session (ne lit que la corbeille du N° de session ouverte)
					if quoi is "" then set quoi to vide
					
					-- Ecriture du nom de la partition lue avec son sous-dossier du N° de session
					--if doublon is false then 
					set liste to liste & "--> " & nom & ":.Trashes:" & num_Session & ":" & return & quoi & return & trait & return
				end if
			end if
		end if
	end repeat
	
	-- Pour affichage dans la fenêtre réglable (normalement fonctionne en largeur et hauteur suivant la demande des écritures)
	repeat with i from 1 to (count paragraph of liste) -- •••
		set end of affichage to paragraph i of liste -- •••
	end repeat -- •••
	
	-- \\\ AFFICHAGE DES RÉSULTATS ///
	
	tell me to activate -- Pour être sur que la fenêtre seras en premier plan
	-- Affichage du contenu des différentes corbeilles dans la corbeille du Dock 
	set choix to (choose from list affichage with prompt "Une sélection, pour dégriser le bouton Explications" OK button name "Explications" cancel button name "Annuler" with title "CORBEILLE DU DOCK " & "N° de session: " & num_Session) -- •••
	
	if choix is false then return -- Bouton Annuler, je quitte
	-- Bouton Explications 
	display dialog lire buttons {"OK"} default button 1 giving up after 90 with title "COMPRIS"
	
	-- \\\ GESTION DES ERREURS ///
	
on error error_message number error_number
	tell me to activate
	display dialog ("N° de l'erreur: " & (error_number as text) & ¬
		return & return & error_message) buttons {"OK"} default button 1 with icon 0 giving up after 5 with title "Erreur"
end try

-- \\\ FIN DU SCRIPT ///

@+

#2 zekiller28

zekiller28

    Admin qui mord

  • Administrateurs
  • PipPipPipPipPipPipPipPipPip
  • 10 695 Messages :
  • Configuration:Toutes sortes de Mac du PPC à l'Intel et toute sorte de MacOS X De Panther Client à Maverick.
  • Sexe:Masculin
  • Localisation:Saint-Hilarion (78)

Posté 18 octobre 2012 - 09:23

Hello !

Merci pour le partage de ce code hyper bien documenté :yahoo:

C'est un code, totalement inutile donc ça place est à ranger dans la corbeille après l'avoir testé (si vous l'osez).

Heu dans quelle Corbeille du coup ? :whistling:

Patapééééé ! :hypocrite:
Le site de ToolsX
Le site de ToolsXOptimizer

Apple Certified Mac Management Basics 10.12
Apple Certified Mac Management Basics 10.9 English
Apple Certified Mac Integration Basics 10.9 English
Apple Certified Associate Mac Integration 10.8
Apple Certified Mac Management Basics 10.8

#3 FredoMkb

FredoMkb

    ...bosseigne...

  • Membres
  • PipPipPipPipPipPipPip
  • 2 645 Messages :
  • Configuration:iMac-SowLeopard
  • Sexe:Masculin
  • Localisation:StÉ
  • Passions:À part rien, absolument tout le reste !

Posté 18 octobre 2012 - 13:14

Bonjour à tous :)

Permet de contrôler dans la corbeille du Dock, à qu'elle corbeille appartient certains fichiers.


Intéressant et utile dans certains cas de figure !

Contrôle les corbeilles vides, pleines, qui ne sont pas encore créés.


Instructif et ça peut même éviter certaines fausses manippes !

Ne prend en compte que les corbeilles de la session ouverte.


Logique.

C'est un code, totalement inutile donc ça place est à ranger dans la corbeille après l'avoir testé (si vous l'osez).


Pas totalement d'accord, c'est sûr que ça ne sert pas en permanence, mais occasionnellement ça peut rendre bien service, donc, pas inutile du tout !

Dans le code, beaucoup de commentaires, pour comprendre l'écriture de ce code à ma façon.


Excellente pratique !

Ce code est sans doutes pas parfait, mais rien ne vous empèche de me signaler les erreurs trouvées.


Pas vraiment remarqué d'erreur manifeste, je n'aurais certainement pas codé de la même manière, mais c'est plus une question de style que de justesse, je ne l'ai pas testé (je n'ai qu'une seule sessions sur mon Mac et je gère ma corbeille avec une pré-corbeille), mais à première lecture il m'a l'air tout-à-fait correct.

Seule petite suggestion, tu peux remplacer ces deux instructions :

set moi to do shell script "echo $USER" -- Lecture du nom réel du dossier icône petite maison
set num_Session to do shell script "echo $UID" --  Lecture du N° de la session utilisée

Par une seule comme ceci :

set {short user name:moi, user ID:num_Session} to system info

Avantage, outre la simplification du code, pas besoin de commande Shell et les infos sont directement issues du Système via les AppleEvents.

Conclusion, à mon avis tout du moins, un inutilitaire qui peut s'avérer finalement bien utile dans certaines situations !


Heu dans quelle Corbeille du coup ? :whistling:


:w00t:
Fredo
"Un pas à la fois me suffit..." Gandhi
"Il n'y a rien de plus inutile que quelque chose d'inexistant. Il n'y a rien de plus utile que de tenter de le créer." FredoMkb

#4 csimple0-N

csimple0-N

    Habitué(e)

  • Membres
  • PipPip
  • 172 Messages :

Posté 18 octobre 2012 - 13:15

Hello !

Merci pour le partage de ce code hyper bien documenté :yahoo:


Heu dans quelle Corbeille du coup ? :whistling:

Patapééééé ! :hypocrite:

Bonjour

Une question?

Le code fonctionne, où c'est juste la lecture du code faite?

Je n'ai testé que sur 2 fauves, donc je ne sais pas si il fonctionne correctement avec d'autres félins.

Heu dans quelle Corbeille du coup ? :whistling:


Je pense qui si l'on a compris le fonctionnement des corbeilles, le code n'a plus de raison d'exister (sauf pour montrer à d'autres personnes le fonctionnement).

Chez moi j'utilise un autre code pour vider que la corbeille désirée.

Cordialement

Jean Louis

#5 zekiller28

zekiller28

    Admin qui mord

  • Administrateurs
  • PipPipPipPipPipPipPipPipPip
  • 10 695 Messages :
  • Configuration:Toutes sortes de Mac du PPC à l'Intel et toute sorte de MacOS X De Panther Client à Maverick.
  • Sexe:Masculin
  • Localisation:Saint-Hilarion (78)

Posté 18 octobre 2012 - 13:43

Non je n'ai pas encore pu tester car en journée je suis sur une machine de production…

Bien entendu mon allusion à la mise à la Corbeille de ton script était une boutade en référence au dit script… :hypocrite:
Le site de ToolsX
Le site de ToolsXOptimizer

Apple Certified Mac Management Basics 10.12
Apple Certified Mac Management Basics 10.9 English
Apple Certified Mac Integration Basics 10.9 English
Apple Certified Associate Mac Integration 10.8
Apple Certified Mac Management Basics 10.8

#6 Tom25

Tom25

    Membre d'honneur

  • Membres
  • PipPipPipPipPipPip
  • 1 085 Messages :
  • Configuration:MacBook Pro et iMac INTEL
  • Sexe:Masculin
  • Localisation:Besançon (25)
  • Passions:VTT, Ski, plongée en masque et palmes.
    J'aime aussi les femmes, en fait, c'est plutôt elles qui m'aiment (dans mes rêves) :-)) .

Posté 18 octobre 2012 - 16:17

Pas testé, mais merci pour ce code. Je crois savoir que des utilisateurs cherchaient ce genre de scripts, sur MacBidouille il me semble. Mais ça remonte à loin et je ne sais plus trop ce que recherchait exactement le gars. Mais bref, il y a des questions sur ce sujet des corbeilles.
Mon site web où je me présente et où se trouvent mes chtits programmes.
J'ai un iMac Intel et un MacBookPro sous Snow Leopard en réseau via une LiveBox, un iPod touch, un iPhone 4 et un iPad 1.

#7 csimple0-N

csimple0-N

    Habitué(e)

  • Membres
  • PipPip
  • 172 Messages :

Posté 18 octobre 2012 - 19:21

Pas testé, mais merci pour ce code. Je crois savoir que des utilisateurs cherchaient ce genre de scripts, sur MacBidouille il me semble. Mais ça remonte à loin et je ne sais plus trop ce que recherchait exactement le gars. Mais bref, il y a des questions sur ce sujet des corbeilles.

Bonjour

De forte chances que c'est un explication que j'avais donnée sur ce site il y a quelques années.

Je vient d'acheter un nouvel ordinateur, et par curiosité je teste mes vieux codes pour voir si il fonctionnent avec Mountain Lion.

C'est suite a une conversation avec notre ami Fredo d:o), que j'ai posté ce code (que j'ai utilisé lors de ça création seulement (raison du mot INUTILITAIRE)).

Lire simplement la première variable (set lire) du code explique le fonctionnement des corbeilles.

JL

#8 csimple0-N

csimple0-N

    Habitué(e)

  • Membres
  • PipPip
  • 172 Messages :

Posté 20 octobre 2012 - 14:08

Bonjour

Dans le même genre de code (créé en juillet 2008, pas très utile, mais permet de comprendre le fonctionnement de Time Machine).

Cette application en plus des sauvegardes, garde en mémoire des donnée sur tous les dossiers datés quelle à créé.

Je n'utilise Time Machine qu'a la demande.

Il suffit de les lires.

Exemple:
Première sauvegarde (avec FireWire 800) sous Léopard

Créé le: 12 Octobre 2011 à 15:43:17
Temps passé: 1 hour, 52 minutes, 54,000 secondes
Copiés: 178843 items (46.3 GB)
Copié: 978 items (46.3 GB)

Une autre

Créé le: 09 Avril 2012 à 11:09:08
Temps passé: 11 minutes, 14.000 secondes
Copiés: 6697 items (611.8 MB)
Copié: 779 items (515 KB)

Dossier supprimé: 2011-12-31-202045 (donc fait doublon)

Quand on fait un cmd i sur un dossier, il donne le contenu du dossier avec les liens plus ce qu'il à réellement enregistré)

Il me reste plus qu'a le passer sous les griffes de Mountain Lion.

Je trouve amusant, de pouvoir comprendre ce que Time Machine à fait lors de certaines sauvegardes, pas vous.

Cordialement

Jean Louis

Ce message a été modifié par csimple0-N - 20 octobre 2012 - 15:00 .


#9 csimple0-N

csimple0-N

    Habitué(e)

  • Membres
  • PipPip
  • 172 Messages :

Posté 26 octobre 2012 - 13:12

Bonjour

Un autre code, tout aussi utile que le premier.

Savoir toutes les versions et mises à jour des différents systèmes d'OS X.

Permet de savoir quand l'on à un problème avec OS X, si l'on ne dit pas le N° de version les réponses risquent de ne pas fonctionner.

Les mises à jour sont faites pour améliorer le système.

Pour le moment 9 versions d'OS X et 60 mises à jour.

Code:
-- OS X
-- Légal Jean Louis
-- Créé le (le 27 Mars 2007 modifié le 8 Septembre 2012)
-- Testé Léopard 10.5.8 et Mountain Lion 10.8.0

--  Lignes à modifier à chaque mises à jour

-- Les différents systèmes OS X
set noms_Fauves to {"Mac OS X 10.0.0 (Cheetah)           24 Mars 2001", "Mac OS X 10.1.0 (Puma)      25 Septembre 2001", "Mac OS X 10.2.0 (Jaguar)              24 Août 2002", "Mac OS X 10.3.0 (Panther)       24 Octobre 2003", "Mac OS X 10.4.0 (Tiger)                29 Avril 2005", "Mac OS X 10.5.0 (Léopard)      26 Octobre 2007", "Mac OS X 10.6.0 (Snow léopard)   28 Août 2009", "Mac OS X 10.7.0 (Lion)                20 Juillet 2011", "Mac OS X 10.8.0 (Mountain Lion) 25 Juillet 2012"} -- 

set nombre_Versions to {5, 6, 9, 10, 12, 9, 9, 6, 3} -- Les différents systèmes commence chacun à zéro (nombres avec les mises à jour) 
set os_version to do shell script "sw_vers -productVersion" -- N° de la version complète du système de démarrage
set num_Fauve to (character 4 of (os_version as string)) + 1 as integer -- N° correspondant au fauve (plus 1 à cause du zéro final de la première version de chaque fauve)
-- Recherche du nom du fauve du système de démarrage
set nom_Fauve to text ((offset of "(" in (item num_Fauve of noms_Fauves)) + 1) thru ((offset of ")" in (item num_Fauve of noms_Fauves)) - 1) in (item num_Fauve of noms_Fauves)

-- Votre choix (après prompt " " une espace, car sinon avec Léopard  l'ascenseur ne fonctionne pas si plus de données que la hauteur de l'écran)
set choix to (choose from list noms_Fauves with prompt " " OK button name "OK" cancel button name "Annuler" with title "VOTRE SÉLECTION") as string
if choix is "false" then return -- Si bouton Annuler quite le code

-- Initialisation des variables, la première vide et la deuxième avec le nom du fauve sélectionné pour la barre de titre
set {lue, nom} to {"", "FAUVE " & text ((offset of "(" in choix) + 1) thru ((offset of ")" in choix) - 1) in choix}
set systeme to (character 13 of (choix as string)) -- N° correspondant au fauve sélectionné
set nombre_Versions to item ((systeme as integer) + 1) of nombre_Versions -- Nombre de mises à jour plus la version 0 originale

repeat with i from 0 to (nombre_Versions as integer)-1  -- Pour prendre en compte le zéro
	set num_system to ("10" & "." & systeme & "." & i & " = ") as string -- N° de version normale
	set nombre_hexadecimal to ("10" & systeme & i) as string -- N° de version en hexdécimal
	set nombre_decimal to (do shell script "perl -e 'printf(hex(\"" & 10 & systeme & i & "\"))'") -- N° de version en décimal
	-- Liste de toutes les versions trouvées du fauve sélectionné
	set lue to lue & num_system & "Hexadécimal: " & nombre_hexadecimal & "  " & "Décimal: " & nombre_decimal & return
end repeat

-- Affichage des résultats
display dialog "Système de démarrage: " & os_version & " " & nom_Fauve & return & return & lue buttons {"OK"} default button 1 with title nom

-- \\\ FIN DU CODE /// --

Défaut de ce code, c'est qu'il faudra le modifier à chaque nouveauté du système.

Cordialement

JL

Ce message a été modifié par csimple0-N - 26 octobre 2012 - 13:18 .





0 utilisateur(s) en train de lire ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)