2011-07-21 24 views
5

Mis secuencias de comandos de Applescript y Python se encuentran en el directorio de trabajo actual. Ahora necesito llamar a la secuencia de comandos de Python llamada test.py con los privilegios de administrador de AppleScript usando comandos de shell.Llamar a un script de Python desde un Applescript

este código en Applescript da pwd

tell application "Finder" to get folder of (path to me) as Unicode text 
set presentDir to POSIX path of result 

este código en Applescript llama a un script en Python desde un Applescript manualmente

do shell script "/Users/mymac/Documents/'Microsoft User Data'/test.py" 

¿Cómo añadir el presentDir a este comando junto con privilegios de administrador?

editar y actualizar:

set py to "test.py " 
set calldir to workingDir & py 
do shell script calldir 

Se da un error

error "sh: /Users/mymac/Documents/Microsoft: No such file or directory" number 127 

Pero pantalla de diálogo calldir muestra

/Users/mymac/Documents/Microsoft User Data/test.py 

Motivo:

se rompe después de la palabra 'Microsoft' en el comando de script de shell debido al espacio.

Respuesta

7

Si conoce la secuencia de comandos se encuentra en el mismo directorio, sólo tiene que utilizar:

do shell script presentDir & "test.py " user name "me" password "mypassword" with administrator privileges 

Aviso el espacio después de test.py antes del cierre de comillas. Es posible que necesite la cadena para ser /test.py, en lugar de test.py, no estoy seguro.

Obtuve esta información en http://developer.apple.com/library/mac/#technotes/tn2065/_index.html.

Editar: intento

set py to "test.py " 
set calldir to quoted form of workingDir & py 
do shell script calldir 
+0

ya que test.py está en el mismo directorio de presentDir, ¿cómo puedo ignorar el uso de"/users/mymac/Documents/'Microsoft User Data'/test.py "en el shell comando de script – thinkcool

+0

No estoy seguro de entender su pregunta, pero he editado con mi mejor estimación de lo que quiere decir? – agf

+0

He actualizado la pregunta .. – thinkcool

0

Su guión inicial no funcionó porque no se escape en los espacios con una barra invertida "\" como tales: "/ Users/mymac/Documentos/Microsoft \ Usuario \ Data/test.py "

Cuestiones relacionadas