[AS] Premier post...

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Sylvain Houdayer
Date:  
À: La liste AppleScript Francophone
Sujet: [AS] Premier post...
Bonjour,

Je débute en AppleScript, et je suis la liste de diffusion à chaque question (enfin je crois).
J'ai élaboré un script pour le boulot en reprenant par-ci par-là des morceaux de codes sur le site d'Apple et leurs PDF de "References" et sur Internet.

Mais je ne trouve aucune réponse pour résoudre mon problème.
Le but : l'utilisateur entre une période, puis il est invité à sélectionner des dossiers dans la fenêtre qui s'affiche. Il clique sur OK, et les dossiers sélectionnés se dupliquent sur le volume Archivage préalablement monté. Enfin, il est demandé à l'utilisatuer, en fin de copie, si il veut ZIP chacun des dossier.

MAIS

Lorsque la copie des fichiers prend du temps (14Go à déplacer par exemple), j'ai un message d'erreur : AppleEvent TimedOut... et le script ne fait pas les ZIP demandés.

Si vous pouvez m'aider, je vous en serait très reconnaissant.

Cordialement,

Sylvain Houdayer

sylvain.h@???
www.sylvainh.com


Voici le script

beep
set R to return
display dialog "Attention !" & R & R & "Ce script va éjecter puis remonter les volumes" & R & R & "Archivage" & R & "Jobs_On_Printer_Tiff" & R & "AraxiVolume_xserve_SMB" & R & R & "Assurez-vous d'avoir quitter toutes les applications faisant appel à des éléments présents sur ces volumes puis cliquez sur OK pour continuer ou sur Annuler pour conserver vos volumes actuellement montés et mettre fin à l'opération d'archivage."
tell application "Finder"
    try
        eject disk "Archivage"
        eject disk "Jobs_On_Printer_Tiff"
        eject disk "AraxiVolume_xserve_SMB"
    end try
end tell
set prompt to "Pour quel période voulez-vous archiver ? (ex : 801, 802, 803,...,812)"
repeat 3 times
    set dialogResult to display dialog prompt ¬
        buttons {"Cancel", "OK"} default button 2 ¬
        default answer "" with icon 1
    set leMois to text returned of dialogResult
    set longueurDuMois to length of leMois
    if longueurDuMois < 3 then
        display alert "Le Mois entré ne comporte que " & longueurDuMois & ¬
            " caractère(s). Il doit en comporter au moins 3" buttons {"Resaisir"} as warning
    else
        tell application "Finder"
            mount volume "afp://xserve.local/Archivage/" as user name "operateur" with password "numerique"
            mount volume "afp://xserve.local/AraxiVolume_xserve_SMB/Jobs/" as user name "operateur" with password "numerique"
            mount volume "afp://192.92.157.5/Jobs_On_Printer_Tiff/" as user name "ARAXI" with password "ARAXI"
            if not (exists folder leMois of disk "Archivage") then
                make new folder at disk "Archivage" with properties {name:leMois}
            else
                display alert "Le dossier " & leMois & ¬
                    " existe déjà. Les dossiers que vous allez sélectionner seront transférés dans le dossier déjà présent" buttons {"OK"} as warning
            end if
        end tell
        exit repeat
    end if
end repeat
tell application "Finder"
    repeat
        set listeDeDossiers to choose folder with prompt ¬
            "Selectionnez les dossiers que vous souhaitez archiver:" & R & R & "(Appuyer sur la touche Pomme  pour en selectionner plusieurs)" with multiple selections allowed
        if the result is not false then -- bug à corriger : sélection du bureau tout entier si aucun dossier visiblement sélectionné
            display alert "Les dossiers sélectionnés vont être copiés vers \"" & leMois & "\" sur le volume \"Archivage.\"" buttons {"OK"} as informational
            move listeDeDossiers to folder leMois of disk "Archivage" with replace
            exit repeat
        else
            display alert "Vous n'avez sélectionné aucun dossier !" buttons {"OK"} as warning
        end if
    end repeat
end tell
set alorsOnZipQuestion to display dialog "Les dossiers ont été transférés" & R & R & "Voulez-vous compresser ces dossiers archivés ?" buttons {"Pas Maintenant", "OK"} default button "OK"
if button returned of alorsOnZipQuestion is "OK" then
    tell application "Finder"
        if not (exists folder "- Compressé -" of folder leMois) then
            make new folder in folder leMois of disk "Archivage" with properties {name:"- Compressé -"}
        end if
        set the destination_folder to folder "- Compressé -" of folder leMois of disk "Archivage" as alias
        set the destination_directory to POSIX path of the destination_folder
    end tell
    repeat with i from 1 to number of items of listeDeDossiers
        set ceDossier to item i of listeDeDossiers
        set the infoDuDossier to info for ceDossier
        if ceDossier is not the destination_folder and the name extension of the infoDuDossier is not in {"zip", "sit"} then
            set the cheminDuDossier to the quoted form of the POSIX path of ceDossier
            set the destination_path to the quoted form of ¬
                (destination_directory & (name of the infoDuDossier) & ".zip")
            do shell script ¬
                ("/usr/bin/ditto -c -k -rsrc --keepParent " & cheminDuDossier & " " & destination_path)
        end if
    end repeat
else
    display alert "Ok, plus tard !"
end if
_______________________________________________
Applescript_fr mailing list
Applescript_fr@???
http://listes.patpro.net/mailman/listinfo/applescript_fr