Me he pasado el día haciendo varias investigaciones y de los intentos de cómo copiar un archivo que se encuentra dentro de un AppleScript aplicación a la root de Soporte de la Aplicación del directorio (hdd -> Library -> Application Support
). Originalmente pensé que era un problema con llamar a do shell script
y administrator privileges
, pero por alguna razón si tengo un archivo que se encuentra en un AppleScript app trato de llamar a ese archivo para ser añadido a la Solicitud de Apoyo, por ejemplo:
set foo to "Macintosh HD/Users/vader/someapp.app/Contents/Resources/Scripts/foobar.txt"
set bar to "Macintosh HD/Library/Application Support/"
do shell script "cp " & (quoted form of foo) & space & (quoted form of bar) with administrator privileges
Me he tomado esto a la forma básica cuando se trata de la ruta de la carpeta y la ruta del archivo, pero cuando corro el de arriba me sale un mensaje de error de:
cp: Macintosh HD/Users/vader/someapp.app/Contents/Resources/Scripts/foobar.txt: No el fichero o el directorio
Puedo devolver cierto que existe el archivo en la aplicación con:
set foobar to POSIX path of (path to resource "foobar.txt" in directory "Scripts")
if not (exists foobar) then
return false
else
return true
end if
He probado con esto:
tell application "Finder" to duplicate file (foo) to folder (bar)
pero eso tampoco funcionó.
La investigación cuando traté de quitar el archivo después de la adición manual (sí tengo permisos de administrador en mi caja):
Yo he investigado varias áreas a ver cómo implementar las peticiones de permisos de uso administrator privileges
, pero no hubo suerte:
- No se puede borrar el directorio a través de AppleScript
- AppleScript: partido y eliminar archivos en la carpeta
- Eliminar automáticamente temporal ~/Library/Application Support carpetas
- Eliminar carpetas si existen y eliminar
- Applescript oe shellscript para eliminar el archivo de configuración?
- Eliminar archivos con AppleScript a la papelera de reciclaje o de forma permanente
Aquí están los siguientes intentos, he probado con:
AppleScript Los Eventos Del Sistema:
tell application "System Events" to delete file appWithPath
¿shell intentos:
intento 1
do shell script "rm -f " & appNamewithQuotedFormPath with administrator privileges
intento 2
do shell script "find " & quotedPathToDirectory & " -name \"" & applicationName & "\" -type f -delete" with administrator privileges
Todavía no iba a funcionar y he comprobado con:
do shell script "echo " & appNamewithQuotedFormPath with administrator privileges
Después de cavar en el Editor de secuencias de Comandos me di cuenta de que estaba recibiendo -10004 error
así que he investigado:
así que me mudé el complemento y la eliminación de los archivos en el Soporte de la Aplicación a un controlador que no tiene un bloque try, pero aún nada.
Pensando que podría ser un problema con la utilizada privilegios he probado todos de los siguientes parámetros que se utilizan con Scripting Additions
:
En un AppleScript aplicación ¿cómo puedo agregar y eliminar un archivo que existe en la aplicación a la root de Soporte de la Aplicación del directorio?
EDITAR:
Después de más pruebas he eliminado el uso de Macintosh HD
y do shell script
trabajaría que no entiendo el motivo que causa la falla del guión. ¿Por qué la adición de Macintosh HD
a la ruta de acceso de la causa que la secuencia de comandos de error?