1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| set Mon_fichier to choose file "Sélectionner le fichier à dupliquer"
tell application "Finder" to set F_Ext to "." & (name extension of Mon_fichier)
set AppleScript's text item delimiters to {","}
-- sélection du nombre de duplication et du début de compteur. Le nombre de digits du compteur est déduit de la valeur max du compteur
-- 3 digits (001, 002, 003,...) si le nombre est < 999, 4 digits (0001, 0002, ...) si le compteur est inférieur à 10000 et ainsi de suite
set CompteurOK to false
set Defaut to "250,2"
repeat until CompteurOK
set Schoix to display dialog "Indiquer le nombre duplications et le numéro de départ: & return & (séparés par une virgule)" with title "Dupliquer le fichier " default answer Defaut
set Choix to text returned of Schoix
if (count of text items of Choix) = 2 then
-- saisie du nombre et du début
set Nombre to Verif_Nombre(text item 1 of Choix)
set Debut to Verif_Nombre(text item 2 of Choix)
set Digits to length of text item 1 of Choix
else
-- saisie du nombre seul
set Nombre to Verif_Nombre(Choix)
set Digits to length of Choix
set Debut to 1
end if
set CompteurOK to (Debut * Nombre) > 0
end repeat
set Source to POSIX path of Mon_fichier-- conversion fichier en format Shell
set Dest1 to text 1 thru -((length of F_Ext) + 1) of Source-- première partie du fichier dupliqué
-- boucle de duplication
repeat with i from Debut to (Debut + Nombre - 1)
set SCompteur to "00000000000" & i
set SCompteur to text ((length of SCompteur) - Digits + 1) thru -1 of SCompteur
set Destination to Dest1 & SCompteur & F_Ext
try
do shell script "CP " & quoted form of Source & " " & quoted form of Destination
on error
display alert "erreur de copie du fichier " & Destination
return
end try
end repeat
display alert "Dulication terminée!"
on Verif_Nombre(S) -- renvoie un nombre ou 0 si S n'est pas un nombre entier
try
set Nb to S as integer
on error
set Nb to 0
display alert "Vous n'avez pas saisi un nombre entier !"
end try
return Nb
end Verif_Nombre |
Partager