¿Cómo usar una variable dentro de una ruta en AppleScript?

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

Quiero crear un código universal para eliminar esta carpeta específica, pero parece que no puedo hacer que mi variable (=respuesta) funcione en la ruta citada.

answer

.

delete ((POSIX file "/Users/answer/Desktop/untitled folder"))

Respuestas (4)

Las siguientes líneas de código AppleScript reemplazan todo el código en su 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

Tenga en cuenta que esto elimina directamente thisFolder y su contenido, sin pasar por la Papelera , ¡así que asegúrese de que esto es lo que desea antes de usarlo!

Tal como está codificado, si thisFolderno existe, el try comando evita que se detenga fatalmente la ejecución del código . En otras palabras, no recibirá un mensaje de error y continuará procesando código adicional en el script , si lo hay.

Me gusta tu enfoque "KISS" (como mencionaste el otro día en una publicación diferente) con tu respuesta aquí +1 ;P

Debe usar la concatenación de cadenas para obtener su variable en la cadena. Específicamente, en su caso "/Users/" & answer & "/Desktop/untitled folder"debería funcionar algo así, aunque es posible que deba envolverlo entre paréntesis como se describe aquí

AFAIR, debe usar la concatenación de cadenas (como se menciona en Moneyt en su respuesta) y convertirla en una ruta de dos puntos como cadena:

-- 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 versión más simple sin variables definidas por el usuario pero que vuelve a una propiedad de Finder en la suite de AppleScript "Finder Basics" ( inicio (carpeta, r/o): el directorio de inicio ) es:

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

tell application "Finder"
    empty the trash
end tell

¡No utilice nombres de variables simples como "respuesta" porque pueden entrar en conflicto con las variables/cadenas reservadas de AppleScript!

Si ejecuta el script mientras está conectado como el usuario para el que desea eliminar el directorio, puede usar esto como su ruta de archivo ~/Desktop/La tilde (~) simboliza/Users/[Current username]

AppleScript no acepta rutas de acceso relativas. ~/Desktop arrojaría un error.
Pero bashscripts en AppleScript sí