0 votos

Involuntaria de la lista anidada de POSIX rutas en Applescript

Estoy tratando de sacar una lista de archivos con la coincidencia de las extensiones de la carpeta con subcarpetas, para su uso en una terminal de comandos.

Los elementos de la lista deben estar separados por barras verticales "|" para que se ejecute a través de la aplicación de línea de comandos, y necesito eliminar el primer elemento de la lista.

on run
    set savedDelimiters to AppleScript's text item delimiters
    set AppleScript's text item delimiters to "|"
    set sourceFolder to choose folder with prompt "Please select directory."
    tell application "System Events"
        set itemList to (POSIX path of every disk item in folders of sourceFolder whose name extension is "VOB" as string)
        log itemList as string
    end tell
    set AppleScript's text item delimiters to savedDelimiters
end run

El problema es la lista resultante en realidad una lista dentro de otra lista. Note el doble llaves en la respuesta:

        get POSIX path of every disk item of every folder of alias "Macintosh HD:Users:USERNAME:Desktop:test2:" whose name extension = "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"}}

Cuando trato de trabajar con la lista, tales como:

log rest of itemList as string

Devuelve una cadena vacía, ya que la lista que se ha creado tiene un solo elemento.

El pensamiento me debe faltar algo obvio... gracias por echar un vistazo!

1voto

adayzdone Puntos 1258

Probar:

set sourceFolderPath to POSIX path of (choose folder with prompt "Please select directory.")
if sourceFolderPath ends with "/" then set sourceFolderPath to text 1 thru -2 of sourceFolderPath
set findResultsList to paragraphs of (do shell script "find " & quoted form of sourceFolderPath & " -type f -flags nohidden -iname '*.VOB';")
set AppleScript's text item delimiters to {"|"}
set findResultsText to findResultsList as text
set AppleScript's text item delimiters to {""}
return findResultsText

0voto

boissonnfive Puntos 1

Sé que tienes tu respuesta pero a pegarse a puro Applescript, que podría haber modificado el script de esta manera :

on run
set savedDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "|"
set sourceFolder to choose folder with prompt "Please select directory."
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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X