1 votes

Applescript : Vérifier si la commande Shell échoue ?

J'écris un AppleScript qui surveille un dossier pour les téléchargements terminés, puis les traite. Si je télécharge un fichier divisé en RAR partiels (.r01, .r02, Mon Dieu, je les déteste ), ils entreront dans le dossier Completed de manière aléatoire au fur et à mesure qu'ils seront terminés. Le script se déclenchera à chaque fois que l'un d'entre eux sera terminé, mais je ne veux pas qu'il commence à se désarchiver automatiquement tant qu'ils ne sont pas tous terminés.

Voici donc ma solution. Dans le script, lorsque je détecte un rar, je vérifie d'abord qu'il est complet :

do shell script ("unrar v " & theItem)

Le Shell produira, entre autres, ceci :

... Test de l'archive thefile.r19 96% ... Test de l'archive thefile.r20 99% ... Calcul des sommes de contrôle de tous les volumes. Impossible de trouver le volume thefile.r21 ... thefile.avi - CRC échoué Total des erreurs : 1

Je suis novice en matière d'AppleScript. Quelle est la manière la plus efficace de parcourir ce document et de déterminer si la vérification a échoué ?

(Alternativement, unrar v prend du temps ; existe-t-il une meilleure façon d'aborder ce problème ?)

1voto

Kit Roed Points 1922

Si vous modifiez votre code en :

 set output to do shell script ("unrar v " & theItem)

La variable output contiendra la sortie du Shell Shell, que vous pourrez utiliser pour comparer à ce que vous attendez pour une sortie valide.

if output contains "CRC Failed" then
    return
end if

Pour éviter de devoir courir unrar v vous pourriez mettre en place une vérification de l'extension du fichier (soit lors de la définition de l'option theItem dans l'AppleScript ou peut-être dans la méthode que vous utilisez pour contrôler le dossier - si vous avez effectué manuellement la tâche launchd et n'avez pas utilisé les Folder Actions)

Pour plus d'informations sur do shell script consultez le site d'Apple Note technique 2065 .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X