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).

 

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

 

Les fonctions variables intégrées dans TCC sont classés par ordre alphabétique dans les rubriques suivantes. Vous pouvez également obtenir de l'aide depuis l'invite de commande sur n'importe quelle fonction avec un AIDE @nomdefonction  ou en appuyant sur Ctrl-F1 lorsque le curseur est sur le nom de la fonction. Voir le AIDE commande pour plus de détails.

 

Remarque: Le FONCTION La commande peut être utilisée pour créer, modifier ou afficher des fonctions variables définies par l'utilisateur, et la commande NON FONCTIONNEMENT 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é d'un signe de pourcentage. % (%@EVAL, %@LEN, etc.). Toutes les fonctions variables doivent avoir des crochets [] en entourant leur(s) paramètre(s), le cas échéant. Aucun espace n'est autorisé entre le nom de la fonction et le [.

 

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

 

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

 

 

Code

Facteur d'échelle

Code

Facteur d'échelle

Nom de l'unité

b

1

 

B

1

 

octet

k

1,000

10 ** 3

K

1,024

2 ** 10

kilooctet

m

1,000,000

10 ** 6

M

1,048,576

2 ** 20

mégaoctet

g

1,000,000,000

10 ** 9

G

1,073,741,824

2 ** 30

gigaoctet

t

1,000,000,000,000

10 ** 12

T

1,099,511,627,776

2 ** 40

téraoctet

p

1,000,000,000,000,000

10 ** 15

P

1,125,899,906,842,624

2 ** 50

pétaoctet

e

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

10 ** 18

E

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

2 ** 60

exabyte

 

 

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

 

écho %@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 original (puissances de 1,000 1,024), tandis que les fabricants de mémoire et Microsoft utilisent les puissances légèrement plus grandes de 2 10 (XNUMX**XNUMX)..

 

2)Le code de balance est l'un des rares cas où TCC is sensible aux majuscules et minuscules.

 

Format des paramètres de date

 

Voir le Formats de date sujet.

 

Paramètres de nom de fichier

 

Les noms de fichiers transmis en tant que paramètres de fonction variable doivent être placés entre guillemets doubles s'ils contiennent des espaces 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 ou d'autres caractères spéciaux. Pour éviter les problèmes qui pourraient être causés par ces caractères, citez le nom renvoyé avant de le transmettre à d'autres commandes. Par exemple (l’une ou l’autre de ces méthodes fonctionnerait) :

 

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

Le fichier echo First PRO contient :

tapez %fnom

.....

définir fname=%@findfirst[pro*]

Le fichier echo First PRO contient :

tapez "%fnom"

.....

 

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 comme paramètre, comme @DISKFREE or @PRÊT, la lettre du lecteur must être suivi de deux points. La fonction ne fonctionnera pas correctement si vous utilisez la lettre de lecteur sans les deux-points.

 

Fonctions accédant aux descripteurs de fichiers

 

Le @FILEREEAD, @FILEWRITE, @FILEWRITEB, @FILESEEK, @FILESEEKLet @FILECLOSE les fonctions vous permettent d'accéder aux fichiers en fonction de leur descripteur de fichier. Ces fonctions doivent être utilisées uniquement avec les descripteurs de fichiers renvoyés par @FILEOPEN, sauf indication contraire sous les fonctions individuelles. Si vous les utilisez avec un autre descripteur de fichier, vous risquez d'endommager les fichiers.

 

Attributs de fichier

 

Plusieurs fonctions acceptent une chaîne d'attribut de fichier pour vous aider à déterminer les fichiers à traiter. Les règles de construction de la chaîne d'attribut sont les mêmes que celles de Commutateurs d'attribut dans les commandes.

 

Exemples

 

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 définit l'invite pour afficher la quantité de mémoire libre (voir PROMPT pour plus de détails sur l'inclusion de fonctions variables dans votre invite) :

 

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

 

Configurez une simple calculatrice en ligne de commande. La calculatrice s'utilise avec une commande telle que CALC 3* (4 + 5) :

 

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