Renommer des dossiers, créer des dossiers et déplacer des fichiers -> applescript

Bonjour,
Le script fonctionne très bien.
Toujours dans le même script, j'aimerai choisir un fichier Indesign qui me sert de gabarit et le placer dans le dossier "couverture" du Dossier ""_FL2 automatiquement... Est-ce possible?
J'aimerai voir une fenêtre Finder pour sélectionner le fichier à copier...

Merci encore
 
Bonjour,

Si j'ai bien compris le script ci-dessous devrait le faire !
j'attends ton retour !

Bloc de code:
tell application "Finder"
    
    set lechemin to choose folder with prompt "Sélectionnez le Dossier principal à traiter ?"
    display dialog "Entrer le chiffre à ajouter à l'ISBN :" default answer ""
    set lechiffre to text returned of result
    set ledossier to name of lechemin
    set isbn to characters 1 thru 3 of ledossier & "-" & character 4 of ledossier & "-" & characters 5 thru 7 of ledossier & "-" & characters 8 thru 12 of ledossier & "-" & lechiffre as text
    set lenomdossier to characters 13 thru -4 of ledossier as text
    
    repeat with i from 1 to count lenomdossier
        if item i of lenomdossier is " " then
            set lenomdossier to items 1 thru (i - 1) of lenomdossier & "-" & items (i + 1) thru -1 of lenomdossier
        end if
    end repeat
    
    set lenomdossier to lenomdossier as text
    set lenomdossier to my remplace(lenomdossier)
    set newnomledossier to isbn & (lenomdossier as text)
    
    set sauv to AppleScript's text item delimiters
    set AppleScript's text item delimiters to {":"}
    set chem to lechemin as string
    set chemin to text items 1 thru -3 of chem as string
    set newchemin to chemin & ":" & newnomledossier
    set AppleScript's text item delimiters to sauv
    
    display dialog newnomledossier
    
    make new folder at chemin with properties {name:newnomledossier}
    make new folder at newchemin with properties {name:newnomledossier & "_fl1"}
    make new folder at newchemin with properties {name:newnomledossier & "_fl2"}
    make new folder at newchemin with properties {name:newnomledossier & "_fl3"}
    make new folder at newchemin & ":" & newnomledossier & "_fl1" with properties {name:"corps-de-livre"}
    make new folder at newchemin & ":" & newnomledossier & "_fl1" with properties {name:"couverture"}
    make new folder at newchemin & ":" & newnomledossier & "_fl2" with properties {name:"corps-de-livre"}
    make new folder at newchemin & ":" & newnomledossier & "_fl2" with properties {name:"couverture"}
    
    
    -- duplique les dossiers
    set lesdossiers to folders of lechemin
    set nb to count lesdossiers
    
    repeat with i from 1 to nb
        duplicate item i of lesdossiers to newchemin & ":" & newnomledossier & "_fl1:couverture"
    end repeat
    repeat with i from 1 to nb
        duplicate item i of lesdossiers to newchemin & ":" & newnomledossier & "_fl2:couverture"
    end repeat
    --duplique les fichiers
    set lesfichiers to files of lechemin
    set nb to count lesfichiers
    repeat with i from 1 to nb
        duplicate item i of lesfichiers to newchemin & ":" & newnomledossier & "_fl1:couverture"
    end repeat
    repeat with i from 1 to nb
        duplicate item i of lesfichiers to newchemin & ":" & newnomledossier & "_fl2:couverture"
    end repeat
    -- fin duplique
    
    set lecheminfichier to choose file with prompt "Sélectionnez le fichier Indesign à copier ?"
    duplicate lecheminfichier to newchemin & ":" & newnomledossier & "_fl2:couverture"
    
    --duplique le fichier datamatrix
    set ledatamatrix to "Macintosh HD:Utilisateurs:Societe:Travaux en cours:NOUVEAUTES:GABARITS:DATAMATRIX:DATAMATRIX_000.pdf"
    duplicate ledatamatrix to newchemin & ":" & newnomledossier & "_fl3"
    --fin duplique datamatrix
    
    --efface fichier original
    set ledossier to quoted form of POSIX path of lechemin
    do shell script "rm -rf " & ledossier
end tell

on remplace(mavar)
    set aremplacer to {39, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90}
    set par to {45, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}
    set nbar to count aremplacer
    set new to mavar
    
    -- remplace les caractères de la liste
    set nb to count characters in new
    set mavar to new
    
    repeat with i from 1 to nb
        set a to character i in mavar
        set lavaleur to ASCII number a
        repeat with j from 1 to nbar
            if item j of aremplacer is lavaleur then
                set newcar to ASCII character (item j of par)
                if i = 1 then
                    set new to newcar & (text 2 thru nb of new)
                    set avant to ""
                else
                    set avant to text 1 thru (i - 1) of new
                end if
                if i = nb then
                    set new to avant & newcar
                else
                    set new to avant & newcar & text nb thru -(nb - i) of mavar
                end if
            end if
        end repeat
    end repeat
    set mavar to new
end remplace
 
Bonjour, je me rends compte que je passe beaucoup de temps à renommer le dossier FL3 et le datamatrix_000.pdf.
Du coup j'ai renommé le datamatrix en Datamatrix_.pdf

Avec

display dialog "Entrer le numero de la table SN :" default answer ""
set ntablesn to text returned of result

J'arrive à renommer le FL3
make new folder at newchemin with properties {name:isbn & "_" & ntablesn & "_fl3"}

J'aimerai renommer le Datamatrix_.pdf en Datamatrix_ & ntablesn .pdf
Exemple pour la table SN : 022 -> Datamatrix_022.pdf


Penses-tu qu'il y aurait un moyen de créer le Datamatrix en pdf de manière automatique?
Pour créer le Datamatrix, j'utilise Pitstop dans Adobe Acrobat.
Exemple de saisie : pour le titre "978-2-298-18038-1" et la table "022" ->180381022

Cordialement

Matthieu
 
Bonjour,

Je n'ai pas compris ce que tu veux faire...
Désolé
Je vois que tu saisies un numéro de table dans la variable ntablesn.

Mais après tu veux nommer quoi en quoi ?
 
Bonjour,
L'idéal serait que tu me postes ton script , avec toutes les modifs que tu as faites, et que tu me dises exactement ce que tu voudrais ajouter !
 
Bonjour,
J'aimerai juste renommer le fichier Datamatrix_.pdf en Datamatrix_022.pdf
Si la table SN à saisir est 022

Mon script final :

tell application "Finder"





set lechemin to choose folder with prompt "Sélectionnez le Dossier principal à traiter ?"

display dialog "Entrer le chiffre à ajouter à l'ISBN :" default answer ""

set lechiffre to text returned of result

set lecheminfichier to choose file with prompt "Sélectionnez le gabarits Indesign à copier ?"

set lecheminfichiercl to choose file with prompt "Sélectionnez le CL à copier ?"

display dialog "Entrer le numero de la table SN :" default answer ""

set ntablesn to text returned of result

display dialog "Entrer le numero d'édition :" default answer ""

set nedition to text returned of result



set ledossier to name of lechemin

set isbn to characters 1 thru 3 of ledossier & "-" & character 4 of ledossier & "-" & characters 5 thru 7 of ledossier & "-" & characters 8 thru 12 of ledossier & "-" & lechiffre as text

set lenomdossier to characters 13 thru -4 of ledossier as text



repeat with i from 1 to count lenomdossier

if item i of lenomdossier is " " then

set lenomdossier to items 1 thru (i - 1) of lenomdossier & "-" & items (i + 1) thru -1 of lenomdossier

end if

end repeat



set lenomdossier to lenomdossier as text

set lenomdossier to my remplace(lenomdossier)

set newnomledossier to isbn & (lenomdossier as text)



set sauv to AppleScript's text item delimiters

set AppleScript's text item delimiters to {":"}

set chem to lechemin as string

set chemin to text items 1 thru -3 of chem as string

set newchemin to chemin & ":" & newnomledossier

set AppleScript's text item delimiters to sauv



display dialog newnomledossier



make new folder at chemin with properties {name:newnomledossier}

make new folder at newchemin with properties {name:newnomledossier & "_fl1"}

make new folder at newchemin with properties {name:newnomledossier & "_fl2"}

make new folder at newchemin with properties {name:isbn & "" & ntablesn & "" & nedition & "_fl3"}

make new folder at newchemin & ":" & newnomledossier & "_fl1" with properties {name:"corps-de-livre"}

make new folder at newchemin & ":" & newnomledossier & "_fl1" with properties {name:"couverture"}

make new folder at newchemin & ":" & newnomledossier & "_fl2" with properties {name:"corps-de-livre"}

make new folder at newchemin & ":" & newnomledossier & "_fl2" with properties {name:"couverture"}





-- duplique les dossiers

set lesdossiers to folders of lechemin

set nb to count lesdossiers



repeat with i from 1 to nb

duplicate item i of lesdossiers to newchemin & ":" & newnomledossier & "_fl1:couverture"

end repeat

repeat with i from 1 to nb

duplicate item i of lesdossiers to newchemin & ":" & newnomledossier & "_fl2:couverture"

end repeat

--duplique les fichiers

set lesfichiers to files of lechemin

set nb to count lesfichiers

repeat with i from 1 to nb

duplicate item i of lesfichiers to newchemin & ":" & newnomledossier & "_fl1:couverture"

end repeat

repeat with i from 1 to nb

duplicate item i of lesfichiers to newchemin & ":" & newnomledossier & "_fl2:couverture"

end repeat

-- fin duplique



duplicate lecheminfichier to newchemin & ":" & newnomledossier & "_fl2:couverture"

duplicate lecheminfichiercl to newchemin & ":" & newnomledossier & "_fl1:corps-de-livre"

duplicate lecheminfichiercl to newchemin & ":" & newnomledossier & "_fl2:corps-de-livre"



--duplique le fichier datamatrix

set ledatamatrix to "Macintosh HD:Utilisateurs:Socprest:Travaux en cours:NOUVEAUTES:GABARITS:DATAMATRIX:DATAMATRIX_.pdf"

duplicate ledatamatrix to newchemin

--fin duplique datamatrix



--efface fichier original

set ledossier to quoted form of POSIX path of lechemin

do shell script "rm -rf " & ledossier

end tell



on
remplace(mavar)

set aremplacer to {39, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90}

set par to {45, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}

set nbar to count aremplacer

set new to mavar



-- remplace les caractères de la liste

set nb to count characters in new

set mavar to new



repeat with i from 1 to nb

set a to character i in mavar

set lavaleur to ASCII number a

repeat with j from 1 to nbar

if item j of aremplacer is lavaleur then

set newcar to ASCII character (item j of par)

if i = 1 then

set new to newcar & (text 2 thru nb of new)

set avant to ""

else

set avant to text 1 thru (i - 1) of new

end if

if i = nb then

set new to avant & newcar

else

set new to avant & newcar & text nb thru -(nb - i) of mavar

end if

end if

end repeat

end repeat

set mavar to new

end remplace
 
Bonjour,

Si j'ai bien compris (je ne suis pas sur) ajoutes, juste avant la ligne "--fin duplique datamatrix" la ligne suivante:
Bloc de code:
set name of newchemin to "Datamatrix_" & ntablesn & ".pdf"
Dis moi si c'est bien cela !
 
J'ai une erreur
error "Il est impossible de régler name of \"Macintosh HD:Users:socprest:Travaux en cours:NOUVEAUTES:978-2-298-18469-2_l-immeuble-de-la-rue-cavendish-t2-charlotte-se-cherche-test\" à \"Datamatrix_222.pdf\"." number -10006 from name of "Macintosh HD:Users:socprest:Travaux en cours:NOUVEAUTES:978-2-298-18469-2_l-immeuble-de-la-rue-cavendish-t2-charlotte-se-cherche-test"
 
Oups!
J'ai oublié d'ajouter le nom du datamatrix actuel dans le chemin .

Bloc de code:
set name of newchemin & "Datamatrix_.pdf" to "Datamatrix_" & ntablesn & ".pdf"
 
Erreur de syntaxe
Il est impossible de régler name of newchemin & "Datamatrix_.pdf" à "Datamatrix_" & ntablesn & ".pdf". Accès non autorisé.
 
Dur les lundis, surtout sans avoir les dosiiers pour tester !

essai quand même d'ajouter, toujours au même endroit ces lignes:
J'ai encore un doute sur le chemin, mais j'attends d'avoir ta réponse...

Bloc de code:
set lenewchemin to newchemin as string
    set lenewchemin to lenewchemin & "Datamatrix_.pdf"
    set lenewchemin to lenewchemin as alias
    set name of lenewchemin to ("Datamatrix_" & ntablesn & ".pdf")
 
error "Impossible de convertir \"Macintosh HD:Users:socprest:Travaux en cours:NOUVEAUTES:978-2-298-18459-2_un-air-d-harmonica_cv-coDatamatrix_.pdf\" en type alias." number -1700 from "Macintosh HD:Users:socprest:Travaux en cours:NOUVEAUTES:978-2-298-18459-2_un-air-d-harmonica_cv-coDatamatrix_.pdf" to alias
 
OK
alors
Bloc de code:
set lenewchemin to newchemin as string
    set lenewchemin to lenewchemin & ":Datamatrix_.pdf"
    set lenewchemin to lenewchemin as alias
    set name of lenewchemin to ("Datamatrix_" & ntablesn & ".pdf")
 
Salut
J'aimerai modifier également le nom du fichier indd que je vais chercher...
Je pensais pouvoir créer le script par moi-même avec la grande aide que tu m'as apportée...
Malheureusement ça ne va pas
Le seul résultat que j'ai eu, le fichier original a été renommé... mais pas celui copié dans le FL2...

Le fichier final doit être renommé comme tel : isbn & "_" & ntablesn & "+2mm_cv_400.indd"

J'ai tenté un truc mais ça ne fonctionne pas...
duplicate lecheminfichierindd to newchemin & ":" & newnomledossier & "_fl2:couverture"
set lefichierindd to name of lecheminfichierindd
set nomindd to (isbn & "_" & ntablesn & "+2mm_cv_400.indd") as text
set nomindd to my remplace(lefichierindd)
end tell

Cordialement
Matt
 
Bonjour, tu as changé la demande saisie du fichier indd de place dans le script, et je ne m'y retrouve plus.

je suppose qu'il s'agit tu fichier que tu sélectionnes avec la ligne:
set lecheminfichier to choose file with prompt "Sélectionnez le gabarits Indesign à copier ?"
et que tu dupliques avec la ligne:
duplicate lecheminfichier to newchemin & ":" & newnomledossier & "_fl2:couverture"

Mets moi le script que tu utilises ici en le copiant dans un bloc code, tu dois te servir de l'icone ...
Capture d’écran 2023-03-09 à 10.50.56.png
et je regarde pour le renommer !
 
Dernière édition:
Bloc de code:
tell application "Finder"
    
    
    set lechemin to choose folder with prompt "Sélectionnez le Dossier principal à traiter ?"
    display dialog "Entrer le chiffre à ajouter à l'ISBN :" default answer ""
    set lechiffre to text returned of result
    set lecheminfichierindd to choose file with prompt "Sélectionnez le gabarits Indesign à copier ?"
    set lecheminfichiercl to choose file with prompt "Sélectionnez le CL à copier ?"
    display dialog "Entrer le numero de la table SN :" default answer ""
    set ntablesn to text returned of result
    display dialog "Entrer le numero d'édition :" default answer ""
    set nedition to text returned of result
    
    set ledossier to name of lechemin
    set isbn to characters 1 thru 3 of ledossier & "-" & character 4 of ledossier & "-" & characters 5 thru 7 of ledossier & "-" & characters 8 thru 12 of ledossier & "-" & lechiffre as text
    set lenomdossier to characters 13 thru -4 of ledossier as text
    
    repeat with i from 1 to count lenomdossier
        if item i of lenomdossier is " " then
            set lenomdossier to items 1 thru (i - 1) of lenomdossier & "-" & items (i + 1) thru -1 of lenomdossier
        end if
    end repeat
    
    set lenomdossier to lenomdossier as text
    set lenomdossier to my remplace(lenomdossier)
    set newnomledossier to isbn & (lenomdossier as text)
    
    set sauv to AppleScript's text item delimiters
    set AppleScript's text item delimiters to {":"}
    set chem to lechemin as string
    set chemin to text items 1 thru -3 of chem as string
    set newchemin to chemin & ":" & newnomledossier
    set AppleScript's text item delimiters to sauv
    
    display dialog newnomledossier
    
    make new folder at chemin with properties {name:newnomledossier}
    make new folder at newchemin with properties {name:newnomledossier & "_fl1"}
    make new folder at newchemin with properties {name:newnomledossier & "_fl2"}
    make new folder at newchemin with properties {name:isbn & "_" & ntablesn & "_" & nedition & "_fl3"}
    make new folder at newchemin & ":" & newnomledossier & "_fl1" with properties {name:"corps-de-livre"}
    make new folder at newchemin & ":" & newnomledossier & "_fl1" with properties {name:"couverture"}
    make new folder at newchemin & ":" & newnomledossier & "_fl2" with properties {name:"corps-de-livre"}
    make new folder at newchemin & ":" & newnomledossier & "_fl2" with properties {name:"couverture"}
    
    
    -- duplique les dossiers
    set lesdossiers to folders of lechemin
    set nb to count lesdossiers
    
    repeat with i from 1 to nb
        duplicate item i of lesdossiers to newchemin & ":" & newnomledossier & "_fl1:couverture"
    end repeat
    repeat with i from 1 to nb
        duplicate item i of lesdossiers to newchemin & ":" & newnomledossier & "_fl2:couverture"
    end repeat
    
    --duplique les fichiers
    set lesfichiers to files of lechemin
    set nb to count lesfichiers
    repeat with i from 1 to nb
        duplicate item i of lesfichiers to newchemin & ":" & newnomledossier & "_fl1:couverture"
    end repeat
    repeat with i from 1 to nb
        duplicate item i of lesfichiers to newchemin & ":" & newnomledossier & "_fl2:couverture"
    end repeat
    -- fin duplique
    
    --duplique le fichier indd
    duplicate lecheminfichierindd to newchemin & ":" & newnomledossier & "_fl2:couverture"
    set lefichierindd to name of lecheminfichierindd
    set nomindd to isbn & "_" & ntablesn & "+2mm_cv_400.indd" as text
    set lecheminfichierindd to newchemin & ":" & newnomledossier & "_fl2:couverture" as string
    set name of lecheminfichierindd to (isbn & "_" & ntablesn & "+2mm_cv_400.pdf")
    
    --duplique le fichier CL
    duplicate lecheminfichiercl to newchemin & ":" & newnomledossier & "_fl1:corps-de-livre"
    duplicate lecheminfichiercl to newchemin & ":" & newnomledossier & "_fl2:corps-de-livre"
    
    --duplique le fichier datamatrix
    set ledatamatrix to "Macintosh HD:Utilisateurs:Socprest:Travaux en cours:NOUVEAUTES:GABARITS:DATAMATRIX:DATAMATRIX_.pdf"
    duplicate ledatamatrix to newchemin
    set lenewchemin to newchemin as string
    set lenewchemin to lenewchemin & ":Datamatrix_.pdf"
    set lenewchemin to lenewchemin as alias
    set name of lenewchemin to ("Datamatrix_" & ntablesn & ".pdf")
    --fin duplique datamatrix
    
    --efface fichier original
    set ledossier to quoted form of POSIX path of lechemin
    do shell script "rm -rf " & ledossier
end tell

on remplace(mavar)
    set aremplacer to {39, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90}
    set par to {45, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122}
    set nbar to count aremplacer
    set new to mavar
    
    -- remplace les caractères de la liste
    set nb to count characters in new
    set mavar to new
    
    repeat with i from 1 to nb
        set a to character i in mavar
        set lavaleur to ASCII number a
        repeat with j from 1 to nbar
            if item j of aremplacer is lavaleur then
                set newcar to ASCII character (item j of par)
                if i = 1 then
                    set new to newcar & (text 2 thru nb of new)
                    set avant to ""
                else
                    set avant to text 1 thru (i - 1) of new
                end if
                if i = nb then
                    set new to avant & newcar
                else
                    set new to avant & newcar & text nb thru -(nb - i) of mavar
                end if
            end if
        end repeat
    end repeat
    set mavar to new
end remplace
 
Dans ton script tu tentes de renommer en .pdf

Bloc de code:
 --duplique le fichier indd
    duplicate lecheminfichierindd to newchemin & ":" & newnomledossier & "_fl2:couverture"
    set lefichierindd to name of lecheminfichierindd
    set nomindd to isbn & "_" & ntablesn & "+2mm_cv_400.indd" as text
    set lecheminfichierindd to newchemin & ":" & newnomledossier & "_fl2:couverture" as string
    set name of lecheminfichierindd to (isbn & "_" & ntablesn & "+2mm_cv_400.pdf")

tu veux quoi exactement le renommer:
isbn & "_" & ntablesn & "+2mm_cv_400.pdf
ou
isbn & "_" & ntablesn & "+2mm_cv_400.indd"