| Objet : | Enregistrer une copie de l'unité de disque, du répertoire, de l'environnement, des listes d'alias et de fonctions et des caractères spéciaux en cours. |
| Format : | SETLOCAL [GLOBALLISTS] |
| GLOBALLISTS | Alias globaux / fonctions de variables utilisateur |
Voir aussi : ENDLOCAL.
Utilisation :
SETLOCAL peut être utilisé sur la ligne de commande, dans les alias, dans les fonctions de bibliothèque et dans les fichiers batch.
SETLOCAL enregistre :
•le lecteur de disque et le répertoire par défaut
•l'environnement,
•la liste des alias
•la liste des fonctions définies par l'utilisateur
•la pile de répertoires (PUSHD)
•le jeu de caractères spéciaux (séparateur de commande, caractère d'échappement, caractère de paramètre, séparateur décimal et séparateur de milliers)
•le paramètre SETDOS /X
•le paramètre SETDOS /F
Après avoir utilisé SETLOCAL, vous pouvez modifier les valeurs de l'un ou de l'ensemble des paramètres ci-dessus et rétablir ultérieurement les valeurs d'origine à l'aide d'une commande ENDLOCAL, ou simplement en quittant le fichier batch.
SETLOCAL ne sauvegarde pas l'historique des commandes ni les variables du tableau.
Si vous avez des alias et/ou des fonctions globales, SETLOCAL les copiera désormais dans une liste locale pour la durée de la commande SETLOCAL. Le ENDLOCAL correspondant les réinitialisera dans la liste globale. Si vous avez défini des alias ou des fonctions à la fois locaux et globaux, SETLOCAL ne sauvegardera que la liste locale (qui sera restaurée par ENDLOCAL).
SETLOCAL prend en charge les arguments EnableExtensions, DisableExtensions, EnableDelayedExpansion et DisableDelayedExpansion de CMD. (Bien qu'ils ne soient pas nécessaires, puisque TCC les définit par défaut ou par l'intermédiaire de la commande OPTION).
Par exemple, ce fragment de fichier batch enregistre tout, supprime tous les alias afin que ceux-ci n'affectent pas les commandes du fichier batch, modifie le disque et le répertoire, change le séparateur de commandes, exécute un programme, puis rétablit les valeurs d'origine :
setlocal
unalias *
cdd d:\test
setdos /c~
program ~ echo Done !
endlocal
SETLOCAL et ENDLOCAL peuvent être imbriqués jusqu'à 32 niveaux dans chaque fichier batch. Vous pouvez également avoir plusieurs paires SETLOCAL / ENDLOCAL dans un fichier batch, et les fichiers batch imbriqués peuvent chacun avoir leurs propres paires SETLOCAL / ENDLOCAL.
SETLOCAL ne remplace pas l' option de configuration des alias locaux. Par conséquent, la modification des alias à l'intérieur d'une paire SETLOCAL / ENDLOCAL affecte la définition des alias des autres sessions de TCC.
Vous pouvez également utiliser SETLOCAL et ENDLOCAL dans un alias ou dans la ligne de commande. Le niveau d'imbrication maximal à partir d'une ligne de commande ou d'un alias est de 32 niveaux. Contrairement aux fichiers batch, vous êtes responsable de la correspondance des appels SETLOCAL / ENDLOCAL à partir d'un alias ou d'une ligne de commande ; TCC n'effectuera pas de ENDLOCAL automatique.
Un ENDLOCAL est exécuté automatiquement à la fin d'un fichier batch, ou au retour d'un "GOSUB nom de fichier". Si vous invoquez un fichier batch à partir d'un autre sans utiliser CALL, le premier fichier batch est terminé et un ENDLOCAL automatique est exécuté ; le deuxième fichier batch hérite des paramètres tels qu'ils étaient avant tout SETLOCAL.
Vous pouvez "exporter" des variables modifiées à l'intérieur d'un bloc SETLOCAL / ENDLOCAL. Voir ENDLOCAL pour plus de détails.
Options :
| GLOBALLISTS | Empêche SETLOCAL de passer aux alias locaux et aux listes de fonctions des variables définies par l'utilisateur pendant la durée de SETLOCAL. |