Les fonctions variables sont très similaires aux variables internes, mais elles prennent un ou plusieurs paramètres (qui peuvent être des variables d'environnement ou même d'autres fonctions variables).

 

Lesfonctions variables sont utiles à l'invite de commande ainsi que dans les alias et les fichiers batch pour vérifier les ressources système disponibles, manipuler des chaînes de caractères et des nombres, et travailler avec des fichiers et des noms de fichiers.

 

Les fonctions variables intégrées dans TCC sont énumérées par ordre alphabétique dans les rubriques suivantes. Vous pouvez également obtenir de l'aide à l'invite de commande sur n'importe quelle fonction avec la  commande HELP @functionname, ou en appuyant sur Ctrl-F1 lorsque le curseur se trouve sur le nom de la fonction. Voir la  commandeHELP pour plus de détails.

 

Note : La  commande FUNCTION peut être utilisée pour créer, éditer ou afficher des fonctions variables définies par l'utilisateur, et la commande UNFUNCTION pour les supprimer.

 

Pour une liste des fonctions variables organisées par catégories générales d'utilisation, voir Fonctions variables par catégorie.

 

Syntaxe

 

Pour qu'une fonction variable définie par l'utilisateur ou intégrée soit évaluée, son nom doit être précédé du signe de pourcentage % (%@EVAL, %@LEN, etc.). Toutes les fonctions variables doivent avoir des crochets [ ] entourant leur(s) paramètre(s), le cas échéant .Aucun espace n'est autorisé entre le nom de la fonction et les crochets[ ].

 

Taille de la mémoire / Espace disque / Unités de taille de fichier et format de rapport

 

Certaines fonctions variables, telles que @DISKFREE, acceptent un paramètre facultatif, le code d'échelle. Ces fonctions renvoient la taille d'un disque ou d'une entité sur le disque en tant que multiple du facteur d'échelle spécifié dans le tableau ci-dessous. Les lettres minuscules indiquent une puissance de 1 000, les lettres majuscules une puissance de 1 024.

 

 

Code

Scale Factor

Code

Scale Factor

Unit Name

b

1

 

B

1

 

byte

k

1,000

10**3

K

1,024

2**10

kilobyte

m

1,000,000

10**6

M

1,048,576

2**20

megabyte

g

1,000,000,000

10**9

G

1,073,741,824

2**30

gigabyte

t

1,000,000,000,000

10**12

T

1,099,511,627,776

2**40

terabyte

p

1,000,000,000,000,000

10**15

P

1,125,899,906,842,624

2**50

petabyte

e

1,000,000,000,000,000,000

10**18

E

1,152,921,504,606,846,976

2**60

exabyte

 

 

Vous pouvez inclure des virgules (ou le séparateur de milliers) dans la valeur renvoyée par une fonction en ajoutant la lettre c au code de l'échelle . Par exemple, pour ajouter des virgules à un  résultat b (nombre d'octets), entrez bc comme paramètre, c'est-à-dire.. :

 

echo %@DISKFREE[C,bc]

 

Notes

 

1)Les fabricants de disques utilisent les préfixes issus du système métrique (kilo, mega, giga, tera) dans leur sens originel (puissances de 1 000), tandis que les fabricants de mémoires et Microsoft utilisent les puissances légèrement plus grandes de 1 024 (2**10).

 

2)Le code d'échelle est l'un des rares cas où la casse est prise en compte. TCC est sensible à la casse.

 

Format des paramètres de date

 

Voir la  rubrique Formats de date.

 

Paramètres de nom de fichier

 

Les noms de fichiers transmis en tant que paramètres de fonctions variables doivent être placés entre guillemets doubles s'ils contiennent des espaces blancs ou des caractères spéciaux. Plusieurs fonctions renvoient également des noms de fichiers ou des parties de noms de fichiers. Sur les lecteurs LFN, les chaînes renvoyées par ces fonctions peuvent contenir des espaces blancs ou d'autres caractères spéciaux. Pour éviter les problèmes qui pourraient être causés par ces caractères, mettez le nom renvoyé entre guillemets avant de le transmettre à d'autres commandes. Par exemple (l'une ou l'autre de ces méthodes fonctionnerait) :

 

set fname="%@findfirst[pro*]"

echo First PRO file contains:

type %fname

.....

set fname=%@findfirst[pro*]

echo First PRO file contains:

type "%fname"

.....

 

Si vous n'utilisez pas les guillemets dans la commande SET ou TYPE dans cet exemple, TYPE n'interprétera pas correctement les espaces blancs ou les caractères spéciaux dans le nom.

 

Paramètres de lettre de lecteur

 

Dans les fonctions variables qui prennent une lettre de lecteur en paramètre, comme @DISKFREE ou @READY, la lettre de lecteur doit être suivie de deux points. La fonction ne fonctionnera pas correctement si vous utilisez la lettre du lecteur sans les deux points.

 

Fonctions d'accès aux gestionnaires de fichiers

 

Les fonctions @FILEREAD, @FILEWRITE, @FILEWRITEB, @FILESEEK, @FILESEEKL et @FILECLOSE vous permettent d'accéder aux fichiers en fonction de leurhandle. Ces fonctions ne doivent être utilisées qu'avec les handles de fichiers renvoyés par @FILEOPEN, sauf indication contraire dans les fonctions individuelles. Si vous les utilisez avec une autre poignée de fichier, vous risquez d'endommager les fichiers.

 

Attributs de fichiers

 

Plusieurs fonctions acceptent une chaîne d'attributs de fichier pour aider à déterminer les fichiers à traiter. Lesrègles de construction de la chaîne d'attributs sont les mêmes que celles qui s'appliquent aux commutateurs d'attributs dans les commandes.

 

Exemples de fonctions

 

Vous pouvez utiliser les fonctions variables de différentes manières, en fonction de vos besoins. Voici quelques exemples pour vous donner une idée de ce qui est possible :

 

La commande ci-dessous indique à l'invite la quantité de mémoire libre (voir PROMPT pour plus de détails sur l'inclusion de fonctions variables dans l'invite):

 

prompt (%%@dosmem[K]K) $p$g

 

Créez une simple calculatrice en ligne de commande. La calculatrice est utilisée avec une commande telle que CALC 3 * (4 + 5) :

 

alias calc `echo La réponse est oui :  %@eval[%$]`