Les Commandes De Base

 
   
 

 

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 :

  • < > = <> <= >= And Or

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.
   
 


J'oubliais, le contenu de ce site peut être pompé ou utilisé dans son intégralité tant que ce n'est pas à des fins commerciales. Il a été concu dans le cadre de ma formation à l'Université de Marne la Vallée et les copyright lui appartiennent donc.