Seleccionando archivo aleatorio en AppleScript

0

Estoy intentando crear un script que pueda seleccionar / mostrar / abrir un archivo al azar desde una carpeta y sus subcarpetas. El siguiente script:

tell application "Finder"
    get some file of (folder "/Volumes/Expansion Drive/Photos")
end tell

Da el siguiente error:

error "El buscador encontró un error: no se puede obtener la carpeta \" / Volúmenes / Unidad de expansión / Fotos \ "." Número -1728 de la carpeta "/ Volúmenes / Unidad de expansión / Fotos"

¿Cuál es la sintaxis correcta? Es un iMac de finales de 2013 con OS X 10.10.5.

    
pregunta excitive 27.09.2015 - 19:23

3 respuestas

1

Debido a que está utilizando la sintaxis de la ruta POSIX, debe usar POSIX file para obtener el objeto en esa ruta:

tell application "Finder"
    get some file of (folder (POSIX file "/Volumes/Expansion Drive/Photos"))
end tell
    
respondido por el 0942v8653 27.09.2015 - 19:54
0

El uso del Finder para obtener listas de archivos puede ser problemático , así como un largo aliento. Recomiendo recurrir a herramientas de Unix como esta ...

#
# Get list of files...
#   For example: all .txt files (not folders) under Downloads and below.
#
try
    set filelist to (do shell script "find ~/Downloads -type f -name '*.txt'")
on error eStr
    # Do something here...
    log eStr
end try

# Count the results
set n to count every paragraph in filelist

# Get a random no
set n to (get random number from 1 to n)

# Get the nth item from the results...
get paragraph n of filelist
    
respondido por el Vic 27.09.2015 - 20:54
0

Consulte un secuencia de comandos corta (de otra parte) para ver cómo puede usar para cambiar el nombre de los archivos en orden ascendente . De esta manera usted puede tener una idea de cómo funcionan los índices. Hice el siguiente guión que me funciona. Establece el índice de los archivos que están en la carpeta. En la carpeta tengo cada archivo con el nombre de archivo1 .. archivo2 .. archivo3 ..

El script funciona de la siguiente manera: establece el índice según el número de archivos, luego elige un número aleatorio entre el número más bajo al índice de archivos y luego uso la GUI con "Eventos del sistema" para decirle al terminal que abra un archivo con el número aleatorio.

Nota: Aprovecho una maravillosa herramienta de Terminal que, con la pestaña, puede terminar de escribir hasta el final del archivo deseado, por lo que no es necesario escribir el resto. Cómo hacer un enlace

set text item delimiters to "."
tell application "System Events"
    tell application "Finder"
        set all_files to every item of alias "Macintosh:Users:Home:Documents:terminal:folder3notes" as list
        repeat with index from 1 to the count of all_files
        end repeat
        set randomnumber to (random number from 2 to index)
        say randomnumber
    end tell
    tell application "Terminal" to activate
    keystroke "open /Users/Home/documents/terminal/folder3notes/file"
    keystroke randomnumber
    key code 48
    delay 0.5
end tell
    
respondido por el S.Doe_Dude 06.07.2017 - 03:38

Lea otras preguntas en las etiquetas