1 votes

AppleScript s'exécute, mais ne semble pas fonctionner

J'ai un classeur Excel ouvert, avec d'anciens noms de fichiers dans la colonne A et de nouveaux noms de fichiers dans la colonne B. J'essaie d'utiliser le script suivant pour renommer mes fichiers. Il s'exécute sans erreur, mais ne renomme pas les fichiers. Est-ce que j'ai oublié quelque chose? Toute aide est grandement appréciée.

set theDirectory to "/Users/admin/Desktop/test/copied images"
tell application "Microsoft Excel"
    tell active sheet
        tell used range
            set rc to count of rows
        end tell
        set theList to get value of range ("A1:B" & rc) as list
        repeat with theItem in theList
            try
                do shell script "mv " & theDirectory & "/" & quoted form of item 1 of theItem & space & theDirectory & "/" & quoted form of item 2 of theItem
            end try
        end repeat

0voto

Synoli Points 1131

Pourquoi votre script semble s'exécuter sans erreur

Votre script s'exécute sans erreur car il ignore toute erreur qui peut survenir dans la ligne do shell script.

Retirez temporairement les lignes try et end try pour réactiver les erreurs. Cela entraînera vraisemblablement un message d'erreur se terminant par Fichier ou répertoire introuvable.

Pourquoi votre script ne renomme pas les fichiers

Le problème est que votre script transmet directement la valeur de theDirectory à la commande shell sans la mettre entre guillemets. Comme cette valeur contient des espaces, le shell interprète la partie directory &[...]theItem comme deux arguments distincts, ce qui provoque l'échec de mv.

Solution

Dans la ligne do shell script, remplacez les deux occurrences de

theDirectory

par :

quoted form of theDirectory

(Optionnel) Rendre votre script plus robuste

De plus, je vous suggère soit de supprimer complètement les lignes try/end try, soit d'insérer une instruction on error pour gérer d'éventuelles erreurs pouvant se produire dans la partie do shell script.

Écrire des scripts qui n'ignorent pas les erreurs vous fera gagner du temps à long terme.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X