0 votes

Liste imbriquée involontaire de chemins POSIX en AppleScript

Je essaie de tirer une liste de fichiers avec des extensions correspondantes à partir d'un répertoire avec des sous-dossiers, à utiliser dans un script terminal.

Les éléments de la liste doivent être séparés par des barres verticales "|" pour s'exécuter à travers l'application en ligne de commande, et je dois supprimer le premier élément de la liste.

on run
    set savedDelimiters to AppleScript's text item delimiters
    set AppleScript's text item delimiters to "|"
    set sourceFolder to choose folder with prompt "Veuillez sélectionner un répertoire."
    tell application "System Events"
        set itemList to (chemin POSIX de chaque élément de disque dans les dossiers de sourceFolder dont l'extension est "VOB" en tant que chaîne)
        log itemList en tant que chaîne
    end tell
    set AppleScript's text item delimiters to savedDelimiters
end run

Le problème est que la liste résultante est en réalité une liste dans une liste. Remarquez les doubles accolades dans la réponse:

        obtenez le chemin POSIX de chaque élément de disque de chaque dossier de l'alias "Macintosh HD:Users:USERNAME:Desktop:test2:" dont l'extension de nom = "VOB"
    --> {{"/Users/USERNAME/Desktop/test2/VIDEO_TS/VIDEO_TS.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_0.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_1.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_2.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_3.VOB", "/Users/USERNAME/Desktop/test2/VIDEO_TS/VTS_01_4.VOB"}}

Quand j'essaie de travailler avec la liste, par exemple:

log reste de la liste d'articles en tant que chaîne

Il renvoie une chaîne vide, car la liste créée n'a qu'un seul élément.

Je pense avoir manqué quelque chose d'évident... merci d'avoir jeté un œil!

1voto

adayzdone Points 1798

Essayer:

définir cheminSourceDossier à POSIX chemin de (choisir dossier avec invite "Veuillez sélectionner un répertoire.")
si cheminSourceDossier se termine par "/" alors définir cheminSourceDossier à texte 1 jusqu'à -2 de cheminSourceDossier
définir listeResultatsRecherche à paragraphes de (do shell script "find " & quoted form of cheminSourceDossier & " -type f -flags nohidden -iname '*.VOB';")
définir délimiteursTexteAppleScript à {"|"}
définir texteResultatsRecherche à listeResultatsRecherche comme texte
définir délimiteursTexteAppleScript à {""}
retourner texteResultatsRecherche

0voto

boissonnfive Points 21

Je sais que vous avez votre réponse mais pour rester dans le pur Applescript, vous auriez pu modifier votre script de cette manière :

on run
set savedDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "|"
set sourceFolder to choose folder with prompt "Veuillez sélectionner un répertoire."
tell application "System Events"
    set itemList to (POSIX path of every disk item in folders of sourceFolder whose name extension is "mp3" as string)
    set newItemList to {}
    repeat with n from 1 to count of itemList
        if (count of item n of itemList) > 0 then
            copy item n of itemList to the end of newItemList
        end if
    end repeat
    log newItemList as string
end tell
set AppleScript's text item delimiters to savedDelimiters
end run

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