Questions aux spécialistes d'AppleScript

FjRond

Membre actif
16 Février 2004
800
14
66
Vendée
blogdefrancoisgiron.wordpress.com
Bonjour,
J'utilise peu AppleScript (préférant les scripts de Terminal), mais ça peut être utile parfois.
Voici ma question:
Comment appeler une commande unix en lui adjoignant, pour argument, une réponse donnée dans une boîte de dialogue?
Pour être plus explicite, voici ce que je veux faire. J'ai fait un shell script qui crée automatiquement un fichier contenant tous mes paramètres LaTeX courants. Ce script peut être lancé comme n'importe quelle commande de terminal et prend en argument le nom du fichier que l'on veut créer.
Je voudrais que ma femme (hostile au terminal) puisse le lancer en n'ayant rien d'autre à faire que sélectionner le script depuis la barre de menu et saisir l'argument.
Voici ce que j'ai commencé à faire, mais il me manque le nécessaire pour l'argument.
Bloc de code:
display dialog "Veuillez saisir le nom de votre document (sans espace)" default answer ""
tell application "Terminal"
	do shell script "doctex " & <ARGUMENT??????????>
end tell
Il y a d'autre part un second problème: apparemment, AppleScript ne trouve pas les commandes du répertoire ~/bin bien que j'ai configuré ma variable $PATH pour zsh, bash et tcsh pour qu'ils reconnaissent ce chemin.
Donc si quelqu'un a une idée&#8230;
Merci
 
Je n'ai pas toutes les réponses, mais peut-être une piste pour le chemin. Dans un script, écrit naguère pour Mac OS 9, ou il fonctionnait très bien, et que je tente d'adapter à Mac OS X, j'ai du remplacer la formulation suivante :

set chemint to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer" as alias

par :

set chemint to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer" as string
set chemin to chemint as alias


puis

set nbfich to count files of chemin

Par :

set nbfich to count container chemin each file

Puis une tapée de lignes du genre :

set nom to name of file compteur of chemin as string

Par des formulations comme :

set nom to name of file compteur of container chemin as string

De plus, j'ai aussi remarqué qu'en cas d'enregistrement automatique, AppleSript utilisait une notation de type "classic" pour les chemins sous X (dossier1:dossier2: etc ... au lieu de dossier1/dossier2/ etc ...).

En résumé : à chaque indication de chemin, ne pas oublier de préciser "container", et si ça ne marche pas avec "/", essayer ":", et noter que contrairement à Mac OS 9, sous X, les "fileselect" renvoient du texte, pas d'alias..

Bon courage.
 
Je suis désolé pour ce doublé. Depuis hier, l'ouverture du forum MacGénération et AvosMac rame très dur. Et comme mon message ne partait pas, j'ai annulé pour renvoyer. En fait, elle est partie deux fois.
Bizarre. Y aurait-il des problèmes avec MacGé? Parce que ma connexion marche très bien par ailleurs.
Il faudrait donc fermer ce sujet.

En tout cas merci Pascal. J'étudie ça.
 
Pascal 77 a dit:
Dans un script, écrit naguère pour Mac OS 9, ou il fonctionnait très bien, et que je tente d'adapter à Mac OS X, j'ai du remplacer la formulation suivante :

set chemint to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer" as alias

par :

set chemint to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer" as string
set chemin to chemint as alias

J'espère que cela à remis à zéro tes compteurs... :D :D

Amitiés

:up:
 
Beaucoup trop peu familier d'AppleScript pour que les indications de Pascal me disent quoi que ce soit.
Chose surprenante, quand je lance le script, un fichier.tex est créé, mais pas dans le bon répertoire ($HOME au lieu de Desktop), et il ne contient qu'une seule des lignes prédéfinies par le shell script (alors qu'il fonctionne normalement lorsqu'il est lancé du terminal).

D'autre part, ça serait bien qu'un modérateur rassemble les deux sujets en un seul.