|
Toutes ces commandes sont aussi précisée dans le fichier
Kix2001.doc téléchargé sur le site ou dans l'aide
très bien faite (A télécharger en CHM ici
ou sur le site de scriptlogic
pour des versions plus récentes). Vous en aurez ici un aperçu
et en français. Je vous conseille à nouveau la consultation
du manuel pour des précisions.
SYNTAXE - top
La syntaxe est relativement simple.
- Kixtart n'est pas sensible à la casse, ni aux retours chariot.
- Pour les commentaires il suffit de placer avant le caractère
';'.
- Les chaînes de caractères peuvent contenir tous les
caractères sauf \0 (null) et \x1a (fin de fichier).
- Les commandes de script doivent être séparées
par des espaces (ou tabulation, fin de ligne aussi).
- Les chaînes de caractère contenant des délimiteurs
doivent être encadrées par des simple quotes (-, +, *,
etc...).
Et c'est tout.
VARIABLES - top
Les variables pré-définies (macros) sont un peu
moins de 50. Chacune peu avoir son utilité dans votre script.
N'hésitez pas à les consulter. Elles sont définies
à l'aide du caractère '@'.
Quelques exemples de macro fréquentes :
- @DATE : Date (attention format YYYY/MM/DD)
- ou utiliser dans l'ordre @MDAYNO/@MONTHNO/@YEAR pour le format (JJ/MM/AAAA)
- @DOMAIN : Domaine ou workgroup auquel appartient l'ordinateur
- @INWIN : OS : 1 = Windows NT; 2 = Windows 9x (peut être précisé
par @PRODUCTTYPE)
- @PRIV Niveau de privilège de l'utilisateur (GUEST, USER,
ADMIN)
- @USERID User ID de l'utilisateur Windows NT courant
Les variables dynamiques peuvent être de deux types DIM
ou GLOBAL tout va dépendre de la portée que vous désirez
leur donner (restreinte à une fonction ou non). Elles sont définies
à l'aide du caractère '$'. Il ya quelques règles
cependant :
- Il n'y a pas d'obligations de les déclarer. Elles sont DIM
par défaut.
- Ne peut contenir les caractères d'opérandes (+,-,*,/,&,<,>,=)
- Ne doit pas dépasser 14 caractères.
- Elles sont de type string (32000 car. max.) ou integer (entre -2
147 483 648 et 2 147 483 647)
- Pour leur donner une valeur, utiliser le signe '='. (ex : $variable=10)
- Pour concatener une chaine de caractère le signe '+' est
utilisé
Les Arrays ne peuvent être que des tableaux à une
seule dimension. Ils doivent être obligatoirement déclarés
avant d'être utilisés. Ils ont une taille maximale de 2
147 483 647 et peuvent être déclarés :
- Dim $Compteurs[14] ; tableau de taille 14
- $NewArray = 10,20,30 ; tableau de taille 3 et contenant des entiers
- $NewArray = "ten","twenty",'thirty" ; tableau
de taille 3 et contenant des strings
EXPRESSIONS - top
Les expressions utilisées sont soit pour du numérique
ou des chaînes de caractères.
Une chaîne de caractères peut être :
- Litérale (un combinaison de caractères encapsulés
par des simple ou double quotes)
- Une fonction qui retourne un string
- Le signe plus(+), qui indique une concaténation de sous-expressions
Les expressions numériques peuvent être fabriqués
à l'aide de combinaison de
- sous-expressions
- Valeurs Numériques (en notation décimale ou hexadécimale)
- Fonctions qui retourne une valeur numérique
- Une référence sur un objet
- Des opérateurs numériques (+, , *, /, &,
|)
Pour spécifier qu'un nombre est en notation hexadécimale,
on le fait précéder du caractère &.
De plus les expressions numériques et les chaîne de caractères
ont comme comparateurs :
COMMANDES - top
Dans les commandes il y a les appels systèmes. On peut citer
COPY, DEL, CD, CALL, EXIT, et il y en a beaucoup d'autres. On peut relever
la commande BREAK (ON/OFF) qui peut bloquer les demandes d'interruption
comme par exemple Ctrl-C ou le bouton de fermeture de la fenêtre.
BOUCLES - top
Toujours dans les commandes, on peut utiliser des boucles. On trouve:
- Do - Until : DO trucs UNTIL Expression
- For Each :
FOR EACH $element IN groupe
trucs
NEXT
- For Next :
FOR $compteur = debut TO fin [STEP pas]
trucs
NEXT
- If - Else - Endif : IF Expression trucs ELSE
trucbis ENDIF
- Select - Case - Endselect : SELECT
CASE expression trucs
CASE expression trucsbis
ENDSELECT
- While - Loop : WHILE Expression trucs LOOP
FONCTIONS - top
Au même titre que les variables vous disposez de deux types de
fonctions :
Les macros qui enrichissent les commandes systèmes de base et
qui agissent directement sur des variables ou sur des contenus de fichiers.
Leur nom est généralement explicite. Grâce à
elle on peut tout autant agir
- Sur la base de registre, comme les fonctions permettant d'ajouter,
de supprimer, de lire une clef de registre ou une sous-clef (AddKey(
), DelTree( ), DelKey( ), ReadValue( ), WriteValue( ), KeyExist()...).
- Sur l'observateur d'évènements, avec des fonctions
comme BackupEventLog( ), LogEvent( ), ClearEventLog( ).
- Sur des composants bureautiques de Windows comme les imprimantes
(addPrinterConnection(), SetDefaultPrinter()...), ou sur le
fond d'écran (setWallPaper()).
- Sur des variables comme des fonctions de transformation de casse
(Lcase(), Ucase()), d'analyse de chaîne de caractère
(Substr(), Instr(), Len()).
- Sur des fichiers, pour l'écriture, la lecture, l'analyse
des attributs (Close( ), Open( ), WriteLine( ), ReadLine(), GetFileAttr()...).
- Sur l'utilisateur, en cherchant ses groupes d'appartenance (Ingroup(),
EnumGroup()...).
- Sur de l'interactivité avec Box() ou MessageBox(),
mais je reviens dessus dans la partie graphisme.
Ce sont des fonctions très précises qui retournent un
code d'erreur sur la sortie standard par défaut. Il ne faut donc
pas être surpris de voir apparaitre dans le shell des zéros
ou des uns. Pour l'éviter, pensez à créer une variable
qui stocke à chaque fois la valeur de retour de vos fonctions.
Vous pouvez créer vous-mêmes des fonctions qui vous seront
bien utiles pour des réutilisations de vos scripts. Pour cela
on va utiliser la commande function. Son utilisation est simple
:
Function name [(argument1, argument2, [optional]argumentx)]
[statements]
[name = expression]
EndFunction
Pour l'appeler, il suffit de mettre le nom de la fonction, les arguments
dans les paranthèses et voilà !. Il y a quelques trucs
à penser :
- Vous pouvez faire des récursivités mais il faut faire
attention aux overflows qui peuvent être atteints assez rapidement.
- Vous ne pouvez pas déclarer de fonctions dans des fonctions.
- Faire attention à vos déclarations de variables et
à leur portée.
- Ne pas oublier au bonnes vieilles commandes GO, GOTO et GOSUB qui
marche encore et peuvent simplifier certains cas de script.
- Que la valeur donnée au nom de la fonction dans la fonction
sera sa valeur de retour et qu'il faut penser à l'attraper
dans votre script principal.
|
|