setlocal

Démarre la localisation des variables d’environnement dans un fichier de commandes. La localisation se poursuit jusqu’à ce qu’une commande endlocal correspondante soit rencontrée ou que la fin du fichier de commandes soit atteinte.

Syntaxe

setlocal [enableextensions | disableextensions] [enabledelayedexpansion | disabledelayedexpansion]

Paramètres

Paramètre Description
enableextensions Active les extensions de commande jusqu’à ce que la commande endlocal correspondante soit rencontrée, quel que soit le paramètre avant l’exécution de la commande setlocal.
disableextensions Désactive les extensions de commande jusqu’à ce que la commande endlocal correspondante soit rencontrée, quel que soit le paramètre avant l’exécution de la commande setlocal.
enabledelayedexpansion Active l’expansion différée de la variable d’environnement jusqu’à ce que la commande endlocal correspondante soit rencontrée, quel que soit le paramètre avant l’exécution de la commande setlocal.
disabledelayedexpansion Désactive l’expansion différée de la variable d’environnement jusqu’à ce que la commande endlocal correspondante soit rencontrée, quel que soit le paramètre avant l’exécution de la commande setlocal.
/? Affiche l'aide à l'invite de commandes.

Notes

  • Si vous utilisez la commande setlocal en dehors d’un script ou d’un fichier de commandes, cela n’a aucun effet.

  • Utilisez setlocal pour modifier les variables d’environnement lorsque vous exécutez un fichier de commandes. Les modifications d’environnement apportées après l’exécution de setlocal sont locales dans le fichier de commandes. Le programme Cmd.exe restaure les paramètres précédents lorsqu’il rencontre une commande endlocal ou atteint la fin du fichier de commandes.

  • Vous pouvez avoir plusieurs commandes setlocal ou endlocal dans un programme de traitement par lots (c’est-à-dire, des commandes imbriquées).

  • La commande setlocal définit la variable ERRORLEVEL. Si vous transmettez {enableextensions | disableextensions} ou {enabledelayedexpansion | disabledelayedexpansion}, la variable ERRORLEVEL est définie sur 0 (zéro). Sinon, elle est définie sur 1. Vous pouvez utiliser ces informations dans les scripts par lots pour déterminer si les extensions sont disponibles, comme illustré dans l’exemple suivant :

    verify other 2>nul
    setlocal enableextensions
    if errorlevel 1 echo Unable to enable extensions
    

    Puisque cmd ne définit pas la variable ERRORLEVEL lorsque les extensions de commande sont désactivées, la commande verify initialise la variable ERRORLEVEL sur une valeur différente de zéro lorsque vous l’utilisez avec un argument non valide. En outre, si vous utilisez la commande setlocal avec les arguments {enableextensions | disableextensions} ou {enabledelayedexpansion | disabledelayedexpansion} et qu’elle ne définit pas la variable ERRORLEVEL sur 1, les extensions de commande ne sont pas disponibles.

Exemples

Pour localiser des variables d’environnement dans un fichier de commandes, suivez cet exemple de script :

rem *******Begin Comment**************
rem This program starts the superapp batch program on the network,
rem directs the output to a file, and displays the file
rem in Notepad.
rem *******End Comment**************
@echo off
setlocal
path=g:\programs\superapp;%path%
call superapp>c:\superapp.out
endlocal
start notepad c:\superapp.out