Selezione di file casuali in AppleScript

0

Sto provando a creare uno script in grado di selezionare / visualizzare / aprire un file in modo casuale da una cartella e dalle sue sottocartelle. Il seguente script:

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

Segnala errore seguente:

error "Il Finder ha ricevuto un errore: impossibile ottenere la cartella \" / Volumi / Unità di espansione / Foto \ "." numero -1728 dalla cartella "/ Volumi / Unità di espansione / Foto"

Qual è la sintassi corretta? È un iMac della fine del 2013 con OS X 10.10.5.

    
posta excitive 27.09.2015 - 19:23
fonte

3 risposte

1

Poiché stai utilizzando la sintassi del percorso POSIX, devi utilizzare POSIX file per ottenere l'oggetto in quel percorso:

tell application "Finder"
    get some file of (folder (POSIX file "/Volumes/Expansion Drive/Photos"))
end tell
    
risposta data 27.09.2015 - 19:54
fonte
0

L'uso del Finder per ottenere elenchi di file può essere problematico così come prolisso. Consiglierei di tornare a unix strumenti come questo ...

#
# 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
    
risposta data 27.09.2015 - 20:54
fonte
0

Guarda uno breve script (da un'altra parte) per vedere come puoi usare per rinominare i file in ordine crescente . In questo modo puoi avere un'idea di come funzionano gli indici. Ho realizzato la sceneggiatura qui sotto che funziona per me. Imposta l'indice dei file presenti nella cartella. Nella cartella ho ogni file chiamato da file1 .. file2 .. file3 ..

Lo script funziona come segue: imposta l'indice in base al numero di file, quindi sceglie un numero casuale tra il numero più basso per l'indice dei file e quindi utilizzo la GUI con "Eventi di sistema" per dire al terminale di aprire un file con il numero casuale.

Nota: Approfitto di un meraviglioso strumento di Terminale che con la linguetta puoi terminare la scrittura fino alla fine del file desiderato, quindi non è necessario digitare il resto. Howto link

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
    
risposta data 06.07.2017 - 03:38
fonte

Leggi altre domande sui tag