Votre syntaxe n'est pas tout à fait correcte.
Tout d'abord, vous n'avez pas besoin de "dire" quoi que ce soit. Laissez de côté le "dire" et le "finir de dire". Les dates ne sont pas spécifiques à une application particulière, vous n'avez donc pas besoin de "dire". C'est peut-être là tout le problème.
Deuxièmement, si vous faites quelque chose comme ça :
set a to current date
Vous obtiendrez un résultat comme celui-ci (pas exactement comme celui-ci, car il dépend de vos préférences en matière de date et d'heure) :
date "Mardi 12 avril 2016 à 10:39:44 AM"
C'est le "résultat" du script d'une ligne ci-dessus. Remarquez les virgules.
Votre script où vous mettez "b" n'inclut pas de virgules et c'est peut-être là que le problème se pose. Je pense que si vous exécutez un script d'une ligne comme je l'ai montré ci-dessus, vous verrez la syntaxe correcte. Une fois que vous l'aurez vue, vous pourrez modifier votre chaîne de caractères dans la ligne où vous avez défini b pour qu'elle corresponde à la syntaxe attendue par le système. Si vous utilisez la bonne syntaxe (c'est-à-dire qu'elle correspond à ce que vous obtenez lorsque vous demandez la date courante), alors votre problème est exclusivement que vous avez enveloppé vos commandes de date dans le bloc "tell", et que l'application à laquelle vous "dites" de le faire ne comprend pas comment le faire. Ne mettez pas l'enveloppe "tell". Faites vos commandes de date en dehors de cela. Votre date "b" fonctionnera toujours plus tard dans votre script, dans un bloc tell. Mais vous devez faire votre travail sur la date en dehors d'un bloc tell.