2 votos

Cómo utilizar 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 hacer un código universal para eliminar esta carpeta específica, pero me parece que no puede hacer mi variable (=respuesta) el trabajo en la citada ruta.

answer

.

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

3voto

user3439894 Puntos 5883

Las siguientes líneas de AppleScript código reemplaza 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 este directamente se elimina thisFolder y su contenido, evitando la Basura, así que asegúrese de que esto es lo que quieres antes de usarlo!

Como codificado, si thisFolder no existe, el try comando impide fatalmente detener la ejecución del código. En otras palabras, usted no obtendrá un mensaje de error y se va a continuar con el procesamiento adicional de código en el script, si los hubiere.

1voto

moneyt Puntos 146

Usted necesidad de utilizar la concatenación de cadenas para obtener la variable de la cadena. Específicamente en el caso de que algo como "/Users/" & answer & "/Desktop/untitled folder" debería funcionar, a pesar de que usted puede necesitar para envolver que entre paréntesis, como se describe aquí

1voto

klanomath Puntos 19587

AFAIR usted tiene que utilizar la concatenación de cadenas (como moneyt mencionó en su respuesta), y convertirlo en un colon camino 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, sino a volver a ser un Buscador de la propiedad en el AppleScript suite "Buscador de Fundamentos" (home (carpeta, r/o) : el directorio home) es:

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

tell application "Finder"
    empty the trash
end tell

Por favor, no utilice nombres de variables simples como "respuesta" porque pueden entrar en conflicto con AppleScript de reserva de variables/cadenas!

0voto

Corin Puntos 273

Si ejecuta la secuencia de comandos mientras está conectado como el usuario que desea eliminar el directorio, usted puede utilizar esto como su ruta de acceso del archivo ~/Desktop/ La tilde(~) simboliza /Users/[Current username]

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X