¿Cómo usar una variable dentro de una ruta en 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

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

answer

.

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

4 respuestas

1

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

    
respondido por el moneyt 10.01.2018 - 17:26
1

AFAIR, tiene que usar la concatenación de cadenas (como se menciona 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 del Finder en el conjunto de AppleScript "Finder Basics" ( home (carpeta, r / o): la 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 uses nombres de variables simples como "respuesta" porque pueden entrar en conflicto con las variables / cadenas reservadas de AppleScript!

    
respondido por el klanomath 10.01.2018 - 18:00
1

Las siguientes líneas de AppleScript código reemplazan todos los códigos 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, omitiendo la Basura , así que asegúrese de que esto es lo que desea antes de usar eso!

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

    
respondido por el user3439894 11.01.2018 - 03:48
0

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]

    
respondido por el Harcker 10.01.2018 - 19:58

Lea otras preguntas en las etiquetas