AppleScript - le if n'est pas pris en compte...

Didjo

Membre actif
9 Novembre 2003
968
85
Paris
Bonjour !

Voici le script : Lien pour le récupérer

Bloc de code:
tell application "Finder"
    set source_folder to alias "Rosebud:Users:christianvidal:Desktop:"
    if (exists item ("Rosebud:Users:christianvidal:Desktop:dossier[vrai]:")) then
        set le_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier:"
        set lautre_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier[vrai]:"
        set le_modif to the name of le_dossier
        set lautre_modif to the name of lautre_dossier
        set nom_le_modif to (le_modif & "[faux]")
        set nom_lautre_modif to ("dossier")
        set the name of le_dossier to (nom_le_modif)
        set the name of lautre_dossier to (nom_lautre_modif)
    else
        if (exists item ("Rosebud:Users:christianvidal:Desktop:dossier[faux]:")) then
            set le_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier:"
            set lautre_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier[faux]:"
            set le_modif to the name of le_dossier
            set lautre_modif to the name of lautre_dossier
            set nom_le_modif to (le_modif & "[vrai]")
            set nom_lautre_modif to ("dossier")
            set the name of le_dossier to (nom_le_modif)
            set the name of lautre_dossier to (nom_lautre_modif)
        else
            display dialog "Oups ! Un des dossiers manque."
        end if
    end if
end tell
Le problème c'est que quand j'essaye d'enregistrer, de compiler ou d'exécuter, il me dit que le dossier "dossier[vrai] ou "dossier[faux]" n'existe pas... Logique vu que j'ai une condition if das les deux cas, si le [faux] existe et pas le [vrai] et vis et versa, mais Applecript s'en fou et me renvoi quand même des erreurs... Comment je peux régler ça ?

Merci !
 
Bonjour !

Voici le script : Lien pour le récupérer

Bloc de code:
tell application "Finder"
    set source_folder to alias "Rosebud:Users:christianvidal:Desktop:"
    if (exists item ("Rosebud:Users:christianvidal:Desktop:dossier[vrai]:")) then
        set le_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier:"
        set lautre_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier[vrai]:"
        set le_modif to the name of le_dossier
        set lautre_modif to the name of lautre_dossier
        set nom_le_modif to (le_modif & "[faux]")
        set nom_lautre_modif to ("dossier")
        set the name of le_dossier to (nom_le_modif)
        set the name of lautre_dossier to (nom_lautre_modif)
    else
        if (exists item ("Rosebud:Users:christianvidal:Desktop:dossier[faux]:")) then
            set le_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier:"
            set lautre_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier[faux]:"
            set le_modif to the name of le_dossier
            set lautre_modif to the name of lautre_dossier
            set nom_le_modif to (le_modif & "[vrai]")
            set nom_lautre_modif to ("dossier")
            set the name of le_dossier to (nom_le_modif)
            set the name of lautre_dossier to (nom_lautre_modif)
        else
            display dialog "Oups ! Un des dossiers manque."
        end if
    end if
end tell
Le problème c'est que quand j'essaye d'enregistrer, de compiler ou d'exécuter, il me dit que le dossier "dossier[vrai] ou "dossier[faux]" n'existe pas... Logique vu que j'ai une condition if das les deux cas, si le [faux] existe et pas le [vrai] et vis et versa, mais Applecript s'en fou et me renvoi quand même des erreurs... Comment je peux régler ça ?

Merci !

Peut etre passer par un

try

...

on error

...

end try

Cordialement
 
  • J’aime
Réactions: TibomonG4
Merci !

En fait le problème venait d'ailleur : j'ai changé les
set ... to alias ...
en set ... to ... as alias
et tout marche ;)

Merci !
 
Bonjour !

Voici le script : Lien pour le récupérer

Bloc de code:
tell application "Finder"
    set source_folder to alias "Rosebud:Users:christianvidal:Desktop:"
    if (exists item ("Rosebud:Users:christianvidal:Desktop:dossier[vrai]:")) then
        set le_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier:"
        set lautre_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier[vrai]:"
        set le_modif to the name of le_dossier
        set lautre_modif to the name of lautre_dossier
        set nom_le_modif to (le_modif & "[faux]")
        set nom_lautre_modif to ("dossier")
        set the name of le_dossier to (nom_le_modif)
        set the name of lautre_dossier to (nom_lautre_modif)
    else
        if (exists item ("Rosebud:Users:christianvidal:Desktop:dossier[faux]:")) then
            set le_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier:"
            set lautre_dossier to alias "Rosebud:Users:christianvidal:Desktop:dossier[faux]:"
            set le_modif to the name of le_dossier
            set lautre_modif to the name of lautre_dossier
            set nom_le_modif to (le_modif & "[vrai]")
            set nom_lautre_modif to ("dossier")
            set the name of le_dossier to (nom_le_modif)
            set the name of lautre_dossier to (nom_lautre_modif)
        else
            display dialog "Oups ! Un des dossiers manque."
        end if
    end if
end tell
Le problème c'est que quand j'essaye d'enregistrer, de compiler ou d'exécuter, il me dit que le dossier "dossier[vrai] ou "dossier[faux]" n'existe pas... Logique vu que j'ai une condition if das les deux cas, si le [faux] existe et pas le [vrai] et vis et versa, mais Applecript s'en fou et me renvoi quand même des erreurs... Comment je peux régler ça ?

Merci !

Bonjour

Ton script est fait que pour toi, pour le tester il faut faire des modifs.
Le plus simple pour nous permettre de tester:

set source_folder to path to "desk" as alias -- = "Rosebud:Users:christianvidal:desktop:"
set le_dossier to (source_folder & "Dossier:" as string) as alias -- "Rosebud:Users:christianvidal:desktop:dossier:"
set lautre_dossier to (source_folder & "dossier[vrai]" as string) as alias -- "Rosebud:Users:christianvidal:desktop:dossier[vrai]:"

Et pour moi c'est mon chemin qui seras utilisé sur mon ordi.
Donc ton script pourras être utilisé sur plusieurs ordinateurs ou sessions.

@+
 
Merci :) Mais effectivement mon script correspond a une certaine utilisation sur ma machine et je ne voulais pas ajouter quelques lignes pour récupérer le chemin du bureau ou... Surtout qu'au final le chemin n'est pas celui du bureau :)