Come utilizzare una variabile all'interno di un percorso in AppleScript?

2
tell application "System Events"
name of current user
end tell
tell application "System Events"
set answer to name of current user
end tell
tell application "Finder"
delete ((POSIX file "/Users/answer/Desktop/untitled folder"))
end tell
tell application "Finder"
empty the trash
end tell

Voglio creare un codice universale per eliminare questa cartella specifica ma non riesco a far funzionare la mia variabile (= risposta) nel percorso quotato.

answer

.

delete ((POSIX file "/Users/answer/Desktop/untitled folder"))
    
posta Juan Nolte 10.01.2018 - 17:15
fonte

4 risposte

1

Devi utilizzare la concatenazione di stringhe per ottenere la tua variabile in la stringa. In particolare nel tuo caso, qualcosa come "/Users/" & answer & "/Desktop/untitled folder" dovrebbe funzionare, anche se potresti doverlo racchiudere tra parentesi come descritto qui

    
risposta data 10.01.2018 - 17:26
fonte
1

AFAIR devi usare la concatenazione di stringhe (come menzionato nella sua risposta) e convertirlo in un percorso dei due punti come stringa:

-- Get and set name of current user
tell application "System Events"
    set UserName to name of current user
end tell

-- Create POSIX path string
set PosixPath to "/Users/" & UserName & "/Desktop/" & "untitled folder"

-- Convert POSIX path into colon path
set ColonPath to (POSIX file PosixPath) as string

-- Delete folder and empty trash
tell application "Finder"
    delete ColonPath
end tell

tell application "Finder"
    empty the trash
end tell

Una versione più semplice senza variabili definite dall'utente, ma ripristinando la proprietà Finder nella suite AppleScript "Nozioni di base sul Finder" ( home (cartella, r / o): il home directory) è:

tell application "Finder"
    delete folder "untitled folder" of folder "Desktop" of home
end tell

tell application "Finder"
    empty the trash
end tell

Per favore non usare nomi di variabili semplici come "risposta" perché potrebbero entrare in conflitto con le variabili / stringhe riservate di AppleScript!

    
risposta data 10.01.2018 - 18:00
fonte
1

Le seguenti righe del codice AppleScript sostituiscono tutto il codice nel tuo OP:

set thisFolder to POSIX path of (path to desktop folder as string) & "untitled folder"
try
    tell application "System Events" to delete folder thisFolder
end try

Tieni presente che questo elimina direttamente thisFolder e il suo contenuto, aggirando il Cestino , quindi assicurati che questo sia ciò che desideri prima di utilizzare esso!

Come codificato, se thisFolder non esiste, il comando try impedisce di interrompere fatalmente l'esecuzione del codice . In altre parole, non riceverai un messaggio di errore e continuerà a elaborare un codice aggiuntivo nello script , se presente.

    
risposta data 11.01.2018 - 03:48
fonte
0

Se si esegue lo script mentre si effettua l'accesso come utente per cui si desidera eliminare la directory, è possibile utilizzarlo come percorso del file ~/Desktop/ La tilde (~) simbolizza /Users/[Current username]

    
risposta data 10.01.2018 - 19:58
fonte

Leggi altre domande sui tag