J'essaie d'écrire un script qui va convertir .numbers
documents en .csv
documents. Il doit être exécutable depuis la ligne de commande afin que je puisse l'utiliser dans un hook git pré-commit.Applescript n'a pas les autorisations pour enregistrer le fichier
J'ai écrit un AppleScript pour prendre un chemin vers un fichier de nombres et l'exporter au format CSV, mais l'exportation ne fonctionnera pas car "Vous n'avez pas la permission. (6)". Je pense que cela a à voir avec le bac à sable, mais je ne peux pas utiliser AppleScript pour faire apparaître un sélecteur de fichiers car cela doit être complètement automatisé.
Comment puis-je donner mes autorisations AppleScript pour exporter vers ce fichier?
on run argv
set input_file to item 1 of argv
set output_file to input_file
--strip off the .numbers extention
set delims to AppleScript's text item delimiters
set AppleScript's text item delimiters to "."
if output_file contains "." then set output_file to (text items 1 thru -2 of output_file) as text
-- set the extension to be csv
set output_file to output_file & ".csv"
set output_file to POSIX file output_file
tell application "Numbers"
activate
tell (open input_file)
set activeDocument to it
with timeout of 3 seconds
export activeDocument as CSV to output_file
end timeout
close activeDocument saving yes
end tell
end tell
end run
Le message d'erreur complet est export_numbers_to_csv.scpt:604:676: execution error: Numbers got an error: The document “DisplayPlusButtonTestScripts.numbers” could not be exported as “DisplayPlusButtonTestScripts”. You don’t have permission. (6)
Mon appel est osascript export_numbers_to_csv.scpt /Users/me/Test\ Scripts/MyTests.numbers
à partir du répertoire de travail /Users/me/
.
J'ai les permissions d'écrire dans le répertoire où je demande au script d'écrire. J'ai également essayé d'exporter dans un répertoire temporaire (via le path to temporary items from user domain
) mais j'ai reçu le même message d'erreur.
Quelle classe AppleScript est 'fichier_entrée'? L'erreur peut être liée à la composition du chemin de destination. – vadian
@vadian Je pense que c'est juste une chaîne. Il est transmis à partir de la ligne de commande sous la forme d'une chaîne de chemin avec des barres obliques. – MattL
Je me demande pourquoi l'extension de fichier de la destination n'est pas mentionnée dans le message d'erreur. Quoi qu'il en soit, essayez 'set output_file dans le fichier POSIX output_file comme texte' – vadian