come ottenere il percorso per più file correttamente tramite applecript o tramite terminale

2

Lo script corrente che sto utilizzando per ottenere il percorso del file per la selezione singola nel Finder è

tell application "Finder"
    set thepath to selection as text
    set pospath to quoted form of the POSIX path of thepath
end tell

Mi dà un percorso come questo: '/Users/lawsome/Desktop/jan-study/untitled folder/'

Questo formato di percorso sta funzionando per il passaggio di un singolo percorso di file per ulteriori azioni come lo spostamento o l'eliminazione del file selezionato.

Quando sto provando lo stesso script per selezioni multiple nel Finder ottengo risultati come questo:

'/Users/lawsome/Desktop/Business Org Feedback.pdfMacintosh HD/Users/lawsome/Desktop/Top 10Macintosh HD/Users/lawsome/Desktop/Follow_Up_letters_Samples.pdfMacintosh HD/Users/lawsome/Desktop/Learn Outlook Tips.txtMacintosh HD/Users/lawsome/Desktop/OutlookTips.pdf'

Questo risultato non funziona per me. Quello che sto cercando di ottenere è di passare più percorsi per elementi selezionati del cercatore per ulteriori azioni.

Se trascino più file nel terminale, mostra il percorso dei file in un formato diverso e che funziona per ulteriori azioni. Come posso ottenere il percorso correttamente attraverso uno script o tramite un comando di terminale.

    
posta lawsome 04.02.2018 - 01:30
fonte

1 risposta

3

Il selection in Finder restituisce un elenco , quindi ecco un esempio di come gestirò le cose:

Esempio codice AppleScript :

tell application "Finder"
    set theSelection to selection
    if theSelection is {} then
        return
    else if (theSelection count) is equal to 1 then
        set thePathFilename to the quoted form of POSIX path of (theSelection as string)
    else
        set thePathFilename to {}
        repeat with i from 1 to (theSelection count)
            copy (quoted form of POSIX path of (item i of theSelection as string)) & space to end of thePathFilename
        end repeat
        set thePathFilename to thePathFilename as string
    end if
end tell
  • Se non c'è selection quando viene eseguito lo script , smette di essere elaborato.

  • Se solo un elemento si trova in selection , thePathFilename contiene un citato POSIX Path Filename dell'elemento selezionato, come una stringa.

  • Se più di un elemento si trova in selection , thePathFilename contiene il nome file percorso POSIX di ciascuno degli elementi selezionati, come una stringa, con uno spazio dopo ciascuna.

Nota: il esempio codice AppleScript è proprio questo e non impiega alcuna gestione degli errori e si intende solo per mostrare uno dei molti modi in cui eseguire un compito. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto.

    
risposta data 04.02.2018 - 02:20
fonte

Leggi altre domande sui tag