| Objet : | Restaurer l'unité de disque, le répertoire, l'environnement, les alias locaux et les listes de fonctions, les caractères spéciaux et exporter les variables sélectionnées. |
| Format : | ENDLOCAL [/D] [exportvar ...] |
Voir aussi : SETLOCAL.
Utilisation :
La commande SETLOCAL enregistre l'unité de disque actuelle, le répertoire par défaut, toutes les variables d'environnement, les listes d'alias et de fonctions, la pile de répertoires (PUSHD), ainsi que le séparateur de commandes, le caractère d'échappement, le caractère de paramètre, le séparateur décimal et le séparateur de milliers. Il ne sauvegarde pas la liste des fonctions définies par l'utilisateur ni les variables de tableau. ENDLOCAL restaure tout ce qui a été sauvegardé par la commande SETLOCAL précédente , à l'exception de ce qui est décrit ci-dessous.
Si vous n'avez que des alias et/ou des fonctions globales, SETLOCAL les copiera dans une liste locale pour la durée de la commande SETLOCAL. La commande ENDLOCAL correspondante les réinitialisera dans la liste globale. Si vous avez des alias ou des fonctions à la fois locaux et globaux, ENDLOCAL ne restaurera que la liste locale (qui a été sauvegardée par SETLOCAL).
Par exemple, ce fragment de fichier batch enregistre tout, supprime tous les alias afin que les alias de l'utilisateur 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 / ENDLOCAL peuvent être imbriqués dans un seul fichier batch jusqu'à 32 niveaux de profondeur. Vous pouvez également avoir plusieurs paires SETLOCAL / ENDLOCAL distinctes dans un fichier batch, et les fichiers batch imbriqués peuvent chacun avoir leur propre SETLOCAL / ENDLOCAL. Si vous ne fournissez pas de ENDLOCAL dans le fichier de traitement par lots, TCC le fera automatiquement à la sortie du fichier batch.
Vous pouvez également utiliser SETLOCAL et ENDLOCAL dans un alias, une fonction de bibliothèque ou à 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 second fichier batch hérite des paramètres tels qu'ils étaient avant tout SETLOCAL.
•Exportation des variables d'environnement
Les variables d'environnement dont les noms sont spécifiés dans la commande ENDLOCAL sont exportées. Cela signifie que leurs noms et valeurs à l'intérieur de SETLOCAL / ENDLOCAL seront placés dans l'environnement restauré, soit en ajoutant des variables, soit en les modifiant éventuellement. Dans l'exemple ci-dessous, la variable TEST aura la valeur abcd après l'exécution de ENDLOCAL, quelle que soit sa valeur, et même si elle n'avait pas été définie auparavant:
setlocal
set test=abcd
endlocal test
La liste des variables à exporter peut contenir des caractères génériques. Toutes les variables correspondant au modèle demandé seront exportées.
•Exportation du répertoire de travail actuel
Voir l'option /D ci-dessous.
Options :
| /D | (Ne pas restaurer le répertoire) Exporter le répertoire actuel : le lecteur et le répertoire d'origine sauvegardés par SETLOCAL ne seront pas restaurés. |