Pasé el día haciendo varias investigaciones e intentando copiar un archivo que se encuentra dentro de una aplicación AppleScript en el directorio de Soporte de aplicaciones raíz ( hdd -> Library -> Application Support
). Originalmente, pensé que era un problema con las llamadas do shell script
y administrator privileges
, pero por alguna razón, si tengo un archivo ubicado en una aplicación AppleScript, trato de llamar a ese archivo para agregarlo al Soporte de aplicaciones, 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
He bajado esto a la forma básica cuando se trata de la ruta de la carpeta y la ruta del archivo, pero cuando ejecuto la anterior, aparece un mensaje de error de:
cp: Macintosh HD / Users / vader / someapp.app / Contents / Resources / Scripts / foobar.txt: No tal archivo o directorio
Puedo devolver que el archivo existe 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 intentado esto con:
tell application "Finder" to duplicate file (foo) to folder (bar)
pero eso tampoco funcionó.
Investigue cuando intenté eliminar el archivo después de agregarlo manualmente (sí, tengo permisos de administrador en mi carpeta):
He investigado varias áreas para ver cómo implementar las solicitudes de permisos usando administrator privileges
pero sin suerte:
- No se puede eliminar el directorio a través de AppleScript
- AppleScript: compara y elimina archivos en la carpeta
- Eliminar automáticamente las carpetas temporales ~ / Library / Application Support
- Eliminar carpetas si existen y eliminar
- Applescript oe shellscript para eliminar el archivo de configuración?
- Borre archivos con AppleScript para reciclar la papelera o permanentemente
Estos son los siguientes intentos que he intentado:
Eventos del sistema AppleScript:
tell application "System Events" to delete file appWithPath
hacer intentos de shell:
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 funcionaría y lo verifiqué con:
do shell script "echo " & appNamewithQuotedFormPath with administrator privileges
Después de profundizar en el Editor de scripts, descubrí que estaba obteniendo -10004 error
, así que investigué:
así que moví la adición y eliminación del archivo en el Soporte de aplicaciones a un controlador que no tenía un bloque de prueba pero aún nada.
Pensando que podría ser un problema con los privilegios utilizados, probé todos los siguientes parámetros utilizados con Scripting Additions
:
En una aplicación AppleScript, ¿cómo puedo agregar y eliminar un archivo que existe en la aplicación al directorio de soporte de aplicaciones raíz?
EDIT:
Después de realizar más pruebas, eliminé el uso de Macintosh HD
y el do shell script
funcionaría, por lo que no entiendo por qué causaría que el script fallara. ¿Por qué agregar Macintosh HD
a la ruta causaría un error en la secuencia de comandos?