@JuanANavarro.
Lors de l'utilisation du shell, vous devez utiliser la forme citée de pour le TEXT et le chemin du fichier. Cela aidera à arrêter les erreurs avec des espaces dans les noms de fichiers et des caractères comme des apostrophes dans le texte par exemple.
set someText to "I've also learned that a quick hack, if one only wants to spit a bit of text to a file, is to use the shell."
set textFile to "/Users/USERNAME/Desktop/foo.txt"
do shell script "echo " & quoted form of someText & " > " & quoted form of textFile
Le script ci-dessus fonctionne correctement.
Si je ne pas & sous forme de cité someText
mais j'avais & someText je recevrais l'erreur suivante.
error "sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file" number 2
Les apostrophes dans « j'ai » est considérée comme faisant partie de la commande.
Si je devais
ensemble textFile à "/ Users/username/Desktop/some foo.txt" comme mon chemin de fichier (notez l'espace.) Et ne pas & forme cité de textFile mais j'avais & textFile
Puis, quand le fichier a été écrit il serait écrire dans un fichier nommé "certains "et non" certains foo.txt "
J'ai trouvé cette version incapable d'écrire des caractères non ASCII dans des fichiers texte. Existe-t-il une version compatible UTF-8 de ce code? Les caractères non-ASCII apparaissent comme ?? dans les fichiers texte résultants. – kakyo
C'est une bonne solution pour le fichier IO, la complexité est que le fichier IO reflète les appels dans MacOS classique, par exemple les anciens appels 'FSRead'' FSWrite' du gestionnaire de fichiers. Vous devez avoir un 'FSRef' pour le fichier que vous ouvrez, puis configurer EOF pour effacer le fichier avant de commencer à écrire. –