2 votos

AppleScript - Error: Se esperaba Fin de Línea se encontró el final del script

Soy un novato en AppleScript y estoy recibiendo el error anterior en lo que debería ser un AppleScript muy simple. Creo que está en alguna parte en la declaración set pero no puedo determinarlo. Agradecería mucho cualquier orientación o sugerencia.

using terms from application "Mail"
on perform mail action with messages theMessages for rule theRule
set attachmentsFolder to (("Disco Duro Mac:Usuarios:John:Dropbox:John & Julie:Wirecard") as texto Unicode) 
tell application "Mail"
    -- Guardar el adjunto
        set savePath to attachmentsFolder & (nombre del theAttachment)
            try
                with timeout of 1800 segundos
                    guardar theAttachment en archivo (savePath)
                end timeout
            end try 
end tell
end perform mail action with messages

1voto

Delimita el ampersand usando una barra invertida de la siguiente manera:

(("Macintosh HD:Users:John:Dropbox:John \& Julie:Wirecard")

From: https://stackoverflow.com/questions/11233682/opening-a-file-with-an-in-the-middle-mac-terminal

1voto

qarma Puntos 71

Has omitido la línea de cierre en el bloque usando términos de....

▸ Agrega end using terms from al final de tu script.


Sin embargo, tu script encontrará un error, dado que la variable theAttachment no está definida.

En notas menos importantes, no es necesario declarar attachmentsFolder como clase Texto Unicode, ya que ya has expresado el valor de la variable como una cadena (que es texto unicode). Dado que estás especificando una carpeta, la ruta de HFS debería tener dos puntos al final, los cuales has omitido. Esto realmente conduciría a otro error cuando lo concatenes con el nombre del archivo. De hecho, no es necesario usar rutas de HFS en absoluto cuando proporcionas una ruta a la ubicación donde se va a guardar el archivo adjunto. Una cadena de ruta POSIX es completamente aceptable y, de hecho, preferible. Entonces, se vería así:

set attachmentsFolder to "/Users/John/Dropbox/John & Julie/Wirecard/"
set savePath to the attachmentsFolder & (el nombre del archivo adjunto)
guardar theAttachment en archivo POSIX savePath

También diría que el try...end try es innecesario y obstaculizador: si hubiera un error en el comando guardar (que lo habrá tal como está actualmente, dada la colonia omitida en la cadena de la ruta), pasaría desapercibido y tu archivo adjunto simplemente no se guardaría, pero no tendrías idea de por qué hasta que quites la encapsulación de try...end try.

Pero la razón por la que realmente no lo necesitas es porque no hay razón para silenciar los errores en este punto del script. Es el último comando, por lo que si el script termina debido a un error, no importa. Típicamente, el bloque try sería útil si hubiera más comandos a seguir después, y no quisieras que el fallo en guardar el archivo adjunto impidiera que el resto del script se ejecutara.

Implementar estos cambios resultaría en este script revisado:

usando términos de la aplicación "Mail"
on realizar acción de correo con mensajes losMensajes para regla laRegla
set attachmentsFolder to "/Users/John/Dropbox/John & Julie/Wirecard/"
dile a la aplicación "Mail"
set savePath to the attachmentsFolder & the name of theAttachment

con duración máxima de 1800 segundos -- ¡30 minutos!
guardar theAttachment en archivo POSIX savePath
end timeout
end tell
end perform mail action with messages
end using terms from

(Aunque aún necesitas definir la variable theAttachment.)

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