J'ai passé la journée à effectuer plusieurs recherches et à tenter de copier un fichier situé dans une application AppleScript dans le répertoire racine Application Support ( hdd -> Library -> Application Support
). A l'origine, je pensais que c'était un problème d'appeler do shell script
et administrator privileges
mais pour une raison quelconque, si j'ai un fichier situé dans une application AppleScript, j'essaie d'appeler ce fichier pour qu'il soit ajouté à Application Support, par exemple:
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
J'ai pris ceci dans le formulaire de base en ce qui concerne le chemin du dossier et le chemin du fichier, mais lorsque j'exécute ce qui précède, un message d'erreur de:
cp: Macintosh HD / Utilisateurs / vader / someapp.app / Sommaire / Ressources / Scripts / foobar.txt: Non tel fichier ou répertoire
Je peux retourner vrai que le fichier existe dans l'application avec:
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
J'ai essayé cela avec:
tell application "Finder" to duplicate file (foo) to folder (bar)
mais cela n'a pas fonctionné non plus.
Faites une recherche lorsque j'ai essayé de supprimer le fichier après l'avoir ajouté manuellement (oui, j'ai des autorisations d'administrateur sur ma boîte):
J'ai étudié plusieurs domaines pour savoir comment implémenter l'invite des autorisations à l'aide de administrator privileges
mais sans chance:
- Impossible de supprimer le répertoire via AppleScript
- AppleScript: correspond et supprime les fichiers du dossier
- Supprimer automatiquement les dossiers temporaires ~ / Bibliothèque / Application Support
- Supprimer des dossiers s'il existe et supprimer
- Applescript ne script shell pour supprimer le fichier de configuration?
- Supprimer des fichiers avec AppleScript pour la corbeille ou de façon permanente
Voici les tentatives suivantes que j'ai essayées:
Événements système AppleScript:
tell application "System Events" to delete file appWithPath
faire des tentatives de shell:
tentative 1
do shell script "rm -f " & appNamewithQuotedFormPath with administrator privileges
tentative 2
do shell script "find " & quotedPathToDirectory & " -name \"" & applicationName & "\" -type f -delete" with administrator privileges
Cela ne fonctionnait toujours pas et j'ai vérifié avec:
do shell script "echo " & appNamewithQuotedFormPath with administrator privileges
Après avoir fouillé dans l'éditeur de script, j'ai découvert -10004 error
alors j'ai cherché:
J'ai donc déplacé l'ajout et la suppression du fichier dans Application Support vers un gestionnaire qui n'avait pas de bloc try mais toujours rien.
Pensant que cela pourrait être un problème avec les privilèges utilisés, j’ai essayé tous les paramètres suivants utilisés avec Scripting Additions
:
Dans une application AppleScript, comment puis-je ajouter et retirer un fichier existant dans l'application dans le répertoire racine Application Support?
MODIFIER:
Après d’autres tests, j’ai supprimé l’utilisation de Macintosh HD
et le do shell script
fonctionnerait ce que je ne comprends pas pourquoi cela ferait échouer le script. Pourquoi ajouter Macintosh HD
au chemin cause-t-il une erreur au script?
la source