Applescript: impossibile trovare la risorsa quando si trova all'interno dell'applicazione

2

Ho un pacchetto di applicazioni Applescript che esegue un file applescript quando viene eseguito. Sto cercando di eseguire un file di shell che si trova in "/Contents/Resources/Data/df.sh", tuttavia con il codice che sto usando, continua a darmi errori di "risorsa non trovata".

set bashFile to path to resource "df.sh"
do shell script "bash " & bashFile

Sono davvero nuovo in Applescript, quindi ho la possibilità di fare qualcosa di ovvio.

    
posta JamEngulfer 19.02.2014 - 00:29
fonte

4 risposte

6

Ci sono alcuni motivi per cui non ha funzionato.

  1. path to resource prende fondamentalmente il percorso del pacchetto e trova i file lì, quindi è necessario inserire effettivamente la sottodirectory, in questo caso "Dati".
  2. Applescript utilizza la propria sintassi del percorso del file (stupido), quindi è necessaria la versione POSIX.
  3. Si interrompe sugli spazi perché l'aggiunta del percorso POSIX ~/Desktop/test folder si presenta come 2 argomenti a bash . Per risolvere questo problema, basta mettere le virgolette attorno ad esso, come faresti in qualsiasi altro momento, con quoted form of .

Ecco lo script fisso:

set bashFile to path to resource "Data/df.sh"
do shell script "bash " & quoted form of (POSIX path of bashFile)
    
risposta data 22.02.2014 - 15:52
fonte
2

Non riesco ancora a commentare, ma c'era un altro suggerimento che mi ha aiutato. Oltre alla risposta di 0942v8653 :

  • Ad esempio, se stai utilizzando Script Editor (e forse anche l'app di Automator), chiudi e riapri il programma.

Ho aggiunto il file all'esterno del programma, quindi non deve aver caricato / riconosciuto il file fino al mio riavvio.

    
risposta data 07.06.2016 - 17:53
fonte
0

Il file che stai cercando di eseguire - se lo trovi nel Finder e Ottieni informazioni su di esso Command I , quale percorso dice la finestra delle informazioni in "Dove:". Probabilmente è il percorso che vorrete usare.

    
risposta data 19.02.2014 - 01:57
fonte
0

Prova a usare path to me invece:

do shell script "bash " & POSIX path of (path to me) & "Contents/Resources/script.sh"

((path to me as text) & "Contents:Resources:script.sh") as alias

    
risposta data 19.02.2014 - 11:29
fonte

Leggi altre domande sui tag