Objet :Afficher, créer, modifier ou supprimer des variables d'environnement

 

Format :Mode d'affichage :

SET [/= /D /E /P /S /U /V /X] [wildname]

 

Mode définition :

SET [/= /A /B /D /M /O /S /U /V /E /RO /R [file...] /T:type | name=value | prompt ]

 

Mode de suppression :

SET [/= /D /M /S /U /V /E ] name=

 

fileUn ou plusieurs fichiers d'entrée à partir desquels lire les définitions des variables.
nameLe nom de la variable d'environnement.
valueLa nouvelle valeur de la variable, séparée du nom par des espaces.
promptInvite de saisie facultative pour l' option /P  name=.
wildnameNom de la ou des variables à afficher. Peut contenir le  caractère générique*, sauf pour l'affichage des variables de registre.

 

/A

Arithmétique

/R

Lecture de fichier(s)

/B

Variable de lot

/RO

Variable en lecture seule

/D

Défaut

/S

Système

/E

Environnement, aussi

/T:type

Définir le type de variable

/M

Environnement principal

/U

Utilisateur

/P

Pause ou invite

/V

Volatile

/O

Ne pas écraser

/X

Remplacer VariableExclude

/Q

Ne pas faire écho au résultat de /A



 

Voir aussi : ESET et UNSET.

 

Syntaxe de complétion de fichier :

 

La syntaxe de complétion de nom de fichier par défaut est la suivante : [/r] * [1] variables [2*] * : [/r] * [1] variables [2*] *

 

Utilisation :

 

Chaque programme et commande hérite d'un environnement, qui est une liste de paires de noms de variables et de valeurs.  Chaque valeur est une chaîne de caractères non vide (c'est-à-dire qu'elle doit contenir au moins un caractère). De nombreux programmes utilisent les entrées de l'environnement pour modifier leurs propres actions. TCC itself utilise plusieurs variables d'environnement.

 

Si vous tapez simplement la commande SET sans options ni paramètres, elle affichera tous les noms et valeurs de toutes les variables actuellement définies dans l'environnement. En règle générale, vous verrez une entrée appelée PATH, une entrée appelée CMDLINE et toutes les autres variables d'environnement que vous et vos programmes avez établies:

 

[c:\] set

PATH=C:\;C:\UTIL

CMDLINE=C:\TCMD\TCSTART.CMD

 

Si vous n'entrez que le nom et qu'il n'y a pas de variable portant ce nom, SET affichera toutes les variables d'environnement dont le nom commence par le nom. Par exemple, s'il n'y a pas de variable pa, la commande ci-dessous affichera toutes les variables dont le nom commence par pa:

 

set pa

 

La commande ci-dessus est équivalente à la commande

 

set pa*

 

S'il n'y a qu'un seulparamètre et qu'il contient un ou plusieurs caractères génériques (désolé, seul * est disponible), SET affichera toutes les variables d'environnement correspondantes. Vous ne pouvez pas utiliser de caractères génériques pour afficher les variables de registre (/D, /S, /U et /V).

 

Vous pouvez spécifier les variables à exclure de l'affichage de SET à l'aide de la variable VariableExclude. Par exemple, pour supprimer l'affichage des variables relatives au processeur et à l'utilisateur, procédez comme suit

 

set VariableExclude=proc*;user*

 

(Notez que cette option n'affecte pas l'existence des variables, mais seulement leur affichage par un SET sans arguments).

 

Pour ajouter une variable à l'environnement, tapez SET, un espace, le nom de la variable, un signe égal et la valeur souhaitée :

 

set mine=c:\NFinancemyfiles

 

Le nom de la variable et le texte après le signe égal seront laissés tels que vous les avez saisis. Cependant, la casse est ignorée lors de la recherche d'une variable ; par exemple ,MyVar, myvar et MYVAR font tous référence à la même variable. Si la variable existe déjà, sa valeur sera remplacée par le nouveau texte que vous avez saisi.

 

Normalement, vous ne devez pas mettre d'espace de part et d'autre du signe égal. Un espace avant le signe égal fera partie dunom; un espace après le signe égal fera partie de la valeur.

 

Les espaces de fin de ligne de la commande SET sont ignorés. Pour créer une variable avec des espaces, utilisez une paire de guillemets après les espaces :

 

set mine=%@repeat[ ,20]``

 

fait de mine 20 caractères d'espaces.

 

Si vous utilisez SET pour créer une variable portant le même nom que l'une des variables internes, vous désactiverez cette dernière. TCC variables internes, vous désactiverez la variable interne. Si vous exécutez par la suite un fichier batch ou un alias qui dépend de cette variable interne, il risque de ne pas fonctionner correctement. Une fois que vous avez supprimé votre variable, la variable interne redevient accessible.

 

Pour afficher le contenu d'une variable, tapez SET plus le nom de la variable :

 

set mine

 

Vous pouvez modifier les variables d'environnement à l'aide de la  commande ESET.  Pour supprimer des variables de l'environnement, utilisez UNSET ou tapez SET, suivi du nom de la variable et d'un signe égal :

 

set mine=

 

Le nom de la variable  est limité à un maximum de 1024 caractères.

 

Note : Vous ne pouvez pas utiliser SET pour modifier les variables GOSUB.

 

La taille de l'environnement est fixée automatiquement et augmentée si nécessaire au fur et à mesure que vous ajoutez des variables.

 

Variables du registre

 

Windows stocke certaines de ses propres variables dans le registre. Il s'agit des variables Default, System, User et Volatile. Ces variables peuvent être manipulées avec les  options /D, /S, /U et /Vde la commande SET . Par exemple, pour afficher le contenu de la variable volatile nomclient, utilisez :

 

set /v nomclient

 

Notez que la définition d'une variable de registre à l'aide de l'une des options /D, /S, /U ou /V ne définira pas la variable dans l'environnement local , sauf si vous utilisez également l' option /E.

 

Les variablesutilisateur sont spécifiques à l'utilisateur et les  variables volatiles ne sont valables que pour la session Windows en cours . Soyez prudent lorsque vous modifiez directement des variables de registre, car elles peuvent être essentielles à divers processus et applications Windows.

 

Si l' option de configuration Mise à jour de l'environnement en cas de changement de système est activée , TCC surveille le message WM_SETTINGCHANGE et met à jour l'environnement à partir des entrées de registre User, Volatile et System. La mise à jour est effectuée chaque fois que TCC affiche l'invite (pour éviter que l'environnement ne change au milieu d'une commande).

 

Variables de tableau

 

Outre les variables d'environnement, SET est également utilisé pour définir les valeurs des variables de tableau. Par exemple, pour définir un tableau de 5 lignes par 10 colonnes, vous devez d'abord utiliser SETARRAY:

 

setarray array1[5,10]

 

Pour définir les valeurs du tableau (basées sur 0), la syntaxe est la suivante :

 

set array1[a[,b[,c[,d]]]]

 

Par exemple :

 

set array1[0,0]=Bob

set array1[0,1]=Travail de Bob

 

Pour développer la variable tableau :

 

echo Name is %array[0,0] and job is %array1[0,1]

 

Options :

 

/=Affiche la boîte de dialogue de la commande SET pour vous aider à définir les options de la ligne de commande. L'option /= peut être placée n'importe où sur la ligne ; les options supplémentaires définiront les champs appropriés dans la boîte de dialogue de la commande.

 

/AÉvaluer l'expression arithmétique à droite du signe égal, placer le résultat dans l'environnement et l'afficher . Par exemple, cette commande additionne 2 et 2 et place le résultat dans la variable d'environnement VAR:

 

set /a var=2+2

 

/A interprète les chaînes de caractères non numériques  comme des noms de variables d'environnement, qu'elles soient ou non précédées du signe de pourcentage %, et les remplace par leurs valeurs respectives . Par exemple, cette séquence donnera la valeur4à Y :

 

set x=2

set /a y=x+2

 
Vous pouvez utiliser @EVAL pour effectuer la même tâche ; SET /A est inclus pour des raisons de compatibilité avec CMD. Contrairement à @EVAL, l'utilisation des opérateurs de décalage >> ou << dans SET /A nécessite de désactiver leur interprétation en tant que symboles de redirection en utilisant SETDOS /X-6 .

 

/BDéfinit une variable de lot (%1 - %n). Uniquement valable lorsque TCC exécute un fichier batch. La variable de lot %n doit déjà exister.

 

/DCréer/modifier/supprimer une  variablepar défaut dans le registre (HKU\.DEFAULT\Environment).

 

/ELorsqu'il est utilisé avec /D, /S, /U ou /V, il définit à la fois la variable de registre et la variable d'environnement locale.

 

/MSi un nom de variable est spécifié, il est remplacé par la valeur d'origine au démarrage. TCC au démarrage. Si aucun nom n'est spécifié, l'environnement entier est ramené à l'environnement d'origine au démarrage. TCC d'origine au démarrage.

 

/ONe pas écraser les valeurs existantes (valable uniquement en combinaison avec /R).

 

/PLorsqu'il est utilisé sans nom de variable, attendez qu'une touche soit pressée après chaque page d'écran avant de poursuivre l'affichage . Lesoptions disponibles à l'invite sont expliquées en détail dans les rubriques Page et File Prompts.

 

Lorsqu'elle est utilisée avec un nom de variable et une chaîne d'invite facultative, par exemple set /p myvar=Enter value, elle émule le  comportement CMD en autorisant la saisie d'une valeur pour la variable. Cette fonction n'est fournie que pour des raisons de compatibilité. Pour plus de flexibilité, utilisez les commandes TCC ESET ou INPUT.

 

/QNe fait pas écho au résultat de /A lorsqu'il se trouve sur la ligne de commande.

 

/RLire les variables d'environnement à partir d'un fichier. Cette méthode est beaucoup plus rapide que le chargement de variables à partir d'un fichier batch contenant plusieurs commandes SET. Chaque entrée du fichier doit être comprise dans la limite de longueur de la ligne de commande pour la commande TCC. Le fichier a le même format que l'affichage SET (c'est-à-dire nom=valeur), de sorte que SET /R peut accepter en entrée un fichier généré en redirigeant la sortie SET. Par exemple, les commandes suivantes enregistrent les variables d'environnement dans un fichier, puis les rechargent à partir de ce fichier :

 

set > varlist

set /r varlist

 

Vous pouvez charger des variables à partir de plusieurs fichiers en énumérant les noms de fichiers individuellement après le /R.

 

Si vous créez un fichier SET /R à la main et que vous devez créer une entrée qui s'étend sur plusieurs lignes du fichier, vous pouvez le faire en terminant chaque ligne (sauf la dernière) par un caractère d'échappement. Toutefois, vous ne pouvez pas utiliser cette méthode pour dépasser la limite de longueur de la ligne de commande. Vous pouvez également ajouter des lignes de commentaire au fichier en commençant chacune d'elles par deux points :. Vous pouvez également utiliser d'autres caractères spéciaux, tels que les espaces blancs de fin, les symboles de redirection et de pipe(<>|), sans qu'il soit nécessaire d'échapper aux caractères. Si vous faites référence à la valeur d'une autre variable  (par exemple, x=%path;c:\jpsoft), l'évaluation de cette variable (path dans l'exemple) est reportée jusqu'à ce qu'une ligne de commande évalue la variable actuelle (x dans l'exemple), de sorte que la commande echo %x affichera le chemin d'accès en vigueur au moment de l' exécution de echo, quel qu'ait été lechemin d'accès au moment où le SET original a défini x.

 

Si vous ne spécifiez pas de nom de fichier et que l'entrée est redirigée, SET /R lira à partir de stdin.

 

/ROCréer une variable en lecture seule. Une fois que vous avez défini la variable, vous ne pouvez pas la modifier ou la désélectionner. Seules les variables d'environnement peuvent être en lecture seule, pas les variables de registre ni les variables de tableau. Une variable en lecture seule sera automatiquement exportée à partir d'un ENDLOCAL.

 

/SCréer/modifier/supprimer une  variablesystème dans le registre (HKLM\System\CurrentControlSet\Control\Session Manager\Environment).

 

/T:type[ : "regex"]Définir un type de variable. Si vous essayez de définir la variable avec un type incompatible, SET renverra une erreur. Les types pris en charge sont les suivants :

 

int (ou 1)La variable ne peut contenir que des chiffres de 0 à 9.
dec (ou 2)La variable ne peut contenir que 0-9, le caractère décimal et le séparateur de milliers.
hex (ou 3)La variable ne peut contenir que 0-9 et A-F
bool (ou 4)La variable ne peut contenir que 0 ou 1
alpha (ou 5)La variable ne peut contenir que A-Z et a-z
alnum (ou 6)La variable ne peut contenir que A-Z, a-z et 0-9
regex (ou 7)La variable doit correspondre à l'expression régulière spécifiée.

 

/UCréer/modifier/supprimer une  variableutilisateur dans le registre (HKCU\Environment).

 

/VCréer/modifier/supprimer une  variablevolatile dans le registre (HKCU\Volatile Environment).

 

/XRemplacer la  variableVariableExclude et afficher toutes les variables correspondantes.