Monter et démonter des disques diversement formatés

Le
mv
Hello,

Le script #1 permet de faire monter des volumes formatés Apple (formatage traditionnel et formatage
Core Storage), et formatés "Windows" (FAT32 et ExFAT).

NB Si les volumes formatés "Windows" ont été éjectés via le Finder, la seule solution est de les
débrancher du Mac puis de les rebrancher.
Si ces volumes ont été démontés via le script #2, le script #1 permet de les remonter sans avoir à
les débrancher/rebrancher.

Script #1
***************
set text item delimiters to ""
set liste to (do shell script "diskutil list") as text
set liste to every paragraph of liste as list
set newList to {}
set critere to {"Apple_HFS", "DOS_FAT_32", "Microsoft Basic Data", "Apple_CoreStorage"}
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
copy last word of (unParagraph as text) to the end of newList
end if
end repeat
end repeat
end considering
-- return newList
repeat with unVolume in newList
try
do shell script "diskutil mount " & unVolume
end try
end repeat
***************

Le script #2 permet de démonter tous les volumes démontables (donc pas les volumes utilisés pour une
raison ou une autre).
Script #2
***************
set text item delimiters to ""
set liste to (do shell script "diskutil list") as text
set liste to every paragraph of liste as list
set newList to {}
set critere to {"Apple_HFS", "DOS_FAT_32", "Microsoft Basic Data", "Apple_CoreStorage"}
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
copy last word of (unParagraph as text) to the end of newList
end if
end repeat
end repeat
end considering
-- return newList
repeat with unVolume in newList
try
do shell script "diskutil unmount " & unVolume
end try
end repeat
***************

À tester
--
Michel Vauquois - <http://michelvauquois.fr>
Nouveau : <http://art-doise-4.michelvauquois.free-h.fr>
et <http://art-doise-5.michelvauquois.free-h.fr>
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
g4fleurot
Le #26438368
M.V. après avoir mûrement réfléchi nous suggère :
À tester...

Le script #2 démonte mes disques Time Machine qui sont temporairement au
repos tant qu'ils ne sont pas sollicités par le système.
--
Gérard FLEUROT
josephb
Le #26438376
Fleuger
Le script #2 démonte mes disques Time Machine qui sont temporairement au
repos tant qu'ils ne sont pas sollicités par le système.

Oui, mais lors de mes tests j'ai pu voir qu'ils remontent tout seuls si
le Système leur cause.
Du moins avec Lion.
--
J. B.
mv
Le #26438381
Fleuger
À tester...

Le script #2 démonte mes disques Time Machine qui sont temporairement au
repos tant qu'ils ne sont pas sollicités par le système.

Normal donc puisque s'ils ne sont pas sollicités par le système, ils ne sont donc pas "occupés" et sont donc réputés comme étant démontables.
Comment s'appellent ces disques ? Ce sera facile de les exclure du démontage généralisé en ajoutant une ligne pour chaque disque à exclure :
**********************
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
copy last word of (unParagraph as text) to the end of newList
end if
end repeat
end repeat
end considering
**********************
deviendra si on veut exclure le disque nom_du_disque (dans le script, il faut garder les guillemets autour du nom) :
**********************
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
if "nom_du_disque" is not in unParagraph then copy last word of (unParagraph as text) to the end of newList
end if
end repeat
end repeat
end considering
**********************
Cordialement.
--
Michel Vauquois - Nouveau : et
mv
Le #26438383
M.V.


Je n'ai pas tenu compte d'une modif à apporter (c'est Joseph-B qui a attiré mon attention dessus :
rajouter un "exit repeat" dès que le script rencontre un des mots-clés dans la liste :
**********************
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
copy last word of (unParagraph as text) to the end of newList
exit repeat <-- ICI
end if
end repeat
end repeat
end considering
**********************

Cordialement.
--
Michel Vauquois - Nouveau : et
g4fleurot
Le #26438388
M.V. a écrit :
Comment s'appellent ces disques

******
set text item delimiters to ""
set liste to (do shell script "diskutil list") as text
set liste to every paragraph of liste as list
set newList to {}
set critere to {"Apple_HFS", "DOS_FAT_32", "Microsoft Basic Data", "Apple_CoreStorage"}
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
copy last word of (unParagraph as text) to the end of newList
if "DD-2To" is not in unParagraph then copy last word of (unParagraph as text) to the end of newList
if "DD-1To" is not in unParagraph then copy last word of (unParagraph as text) to the end of newList
end if
end repeat
end repeat
end considering
-- return newList
repeat with unVolume in newList
try
do shell script "diskutil unmount " & unVolume
end try
end repeat
********
les deux disques "DD-1To" et "DD-2To" sont démontés
--
Gérard FLEUROT
mv
Le #26438392
Fleuger
les deux disques "DD-1To" et "DD-2To" sont démontés

Alors qu'ils ne devraient pas ?
C'est juste que ton script ne va pas ! Tu as mal placé la ligne qui alimente "newList" !
Celui-ci devrait aller beaucoup mieux :
******
set text item delimiters to ""
set liste to (do shell script "diskutil list") as text
set liste to every paragraph of liste as list
set newList to {}
set critere to {"Apple_HFS", "DOS_FAT_32", "Microsoft Basic Data", "Apple_CoreStorage"}
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
if "DD-2To" is not in unParagraph then
if "DD-1To" is not in unParagraph then copy last word of (unParagraph as text) to the end of newList
end if
end if
end repeat
end repeat
end considering
repeat with unVolume in newList
try
do shell script "diskutil unmount " & unVolume
end try
end repeat
********
Cordialement.
--
Michel Vauquois - Nouveau : et
mv
Le #26438396
La petite modif de rien du tout que j'ai encore oubliée !
Fleuger
les deux disques "DD-1To" et "DD-2To" sont démontés

Alors qu'ils ne devraient pas ?
C'est juste que ton script ne va pas ! Tu as mal placé la ligne qui alimente "newList" !
Celui-ci devrait aller beaucoup mieux :
******
set text item delimiters to ""
set liste to (do shell script "diskutil list") as text
set liste to every paragraph of liste as list
set newList to {}
set critere to {"Apple_HFS", "DOS_FAT_32", "Microsoft Basic Data", "Apple_CoreStorage"}
considering case
repeat with unParagraph in liste
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
if "DD-2To" is not in unParagraph then
if "DD-1To" is not in unParagraph then copy last word of (unParagraph as text) to the end of newList
end if
exit repeat
end if
end repeat
end repeat
end considering
repeat with unVolume in newList
try
do shell script "diskutil mount " & unVolume
end try
end repeat
********
Cordialement.
--
Michel Vauquois - Nouveau : et
g4fleurot
Le #26438395
M.V. a écrit ceci :
Alors qu'ils ne devraient pas ?

Oui
C'est juste que ton script ne va pas ! Tu as mal placé la ligne
qui alimente "newList" !

Vu
Celui-ci devrait aller beaucoup mieux :

Oui, ç'est tout bon ;-)
Vous êtes vraiment très forts.
--
Gérard FLEUROT
josephb
Le #26438394
Bonjour Gérard,
Fleuger
les deux disques "DD-1To" et "DD-2To" sont démontés

essaie ça STP
*******************
set text item delimiters to ""
set liste to (do shell script "diskutil list") as text
set liste to every paragraph of liste as list
set newList to {}
set critere to {"Apple_HFS", "DOS_FAT_32", "Microsoft Basic Data", "Apple_CoreStorage"}
considering case
repeat with unParagraph in liste
if not (unParagraph contains "DD-2To" or unParagraph contains "DD-1To") then
repeat with unCritere in critere
if unCritere is in (unParagraph as text) then
copy last word of (unParagraph as text) to the end of newList
exit repeat
end if
end repeat
end if
end repeat
end considering
repeat with unVolume in newList
try
do shell script "diskutil unmount " & unVolume
end try
end repeat
********************
--
J. B.
g4fleurot
Le #26438399
Joseph-B a écrit ceci :
essaie ça STP

C'est bon aussi.
Chapeau bas à vous deux.
--
Gérard FLEUROT
Publicité
Poster une réponse
Anonyme