2011-08-26 23 views
11

Tengo que escribir un Applescript para automobutar una carpeta según el usuario. Applescript Editor arroja este error.concatenar una cadena y una variable en una cadena en applescript

Un final de línea no puede seguir este identificador.

Aquí está la parte del script que arroja el error.

try 
    set short_name to do shell script "whoami" 
    set path to "afp://fileserver.local/Faculty/" & short_name 
    mount volume path as user name short_name 
end try 
+0

Debo añadir que el short_name al final de la línea 3 está resaltado. – jeremyjjbrown

+0

Una nota lateral rápida: no debería ver ningún error ya que su secuencia de comandos está en un bloque 'try'. – fireshadow52

+0

¡Esta pregunta ha sido vista miles de veces y solo se votó una vez! – jeremyjjbrown

Respuesta

14

path no puede tener un nombre variable.

try 
    set short_name to do shell script "whoami" 
    set p to "afp://fileserver.local/Faculty/" & short_name 
    display dialog p 
end try 

Funciona bien.

8

Estoy de acuerdo con Bertrand, su problema es con el uso de "ruta" como variable. Algunas palabras tienen un significado especial para applescript y no se pueden usar como variable, siendo el camino uno de ellos. Notarás que cuando compilas tu código, esa ruta no se vuelve verde como otras variables que indican que es especial.

Si aun así desea usar "ruta" como la variable que puede. En applescript puedes poner "|" alrededor de la variable para indicar a AppleScript que es una variable. Entonces esto funcionaría

try 
    set short_name to do shell script "whoami" 
    set |path| to "afp://fileserver.local/Faculty/" & short_name 
    mount volume |path| as user name short_name 
end try 

Tenga en cuenta que el uso de esta técnica en realidad se puede tener una variable en varias palabras como ...

set |the path| to "afp://fileserver.local/Faculty/" & short_name 

Un último comentario ... hay un método applescript para obtener el nombre de usuario de corta una persona ...

set short_name to short user name of (get system info) 
+0

+1, pero no estaré de acuerdo contigo en 'establecer short_name para abreviar el nombre de usuario de (obtener información del sistema)'. En mi máquina, demora unos 2 segundos en ejecutarse. –

+0

Acepto (obtener información del sistema) es muy lento. "do shell script" whoami "" es mucho más rápido – jeremyjjbrown

Cuestiones relacionadas