Home > Commands A-M > Batch E

ENDLOCAL


Description | Syntax | Parameters | Switches | Related | Notes | Examples | Errorlevels | Availability

End localisation of environment changes in a batch file.

Any changes made to an Environment Variable after ENDLOCAL has been issued will be persistent - they will still remain in memory after the batch file has terminated and any previous value stored in that Environment Variable will not be restored.

Ending the CMD session will delete all Environment Variables created at the DOS prompt or in a batch file.


Syntax

ENDLOCAL /?

ENDLOCAL


Parameters

none.


Switches
/? (NTXP)
Display help.

Related

SETLOCAL - Begin localisation of environment variables in a batch file.
Equivalent Linux BASH commands:
readonly - Mark variables/functions as readonly.


Notes

If Command Extensions are enabled ENDLOCAL changes:

If the corresponding SETLOCAL enable or disabled command extensions using the new ENABLEEXTENSIONS or DISABLEEXTENSIONS options, then after the ENDLOCAL, the enabled/disabled state of command extensions will be restored to what it was prior to the matching SETLOCAL command execution.


Examples

If SETLOCAL is used without a corresponding ENDLOCAL then localisation of environment changes will end when the batch file ends.

 @ECHO OFF
   SETLOCAL
      SET v_filename=c:\test.txt

   SETLOCAL
      SET v_filename=H:\UserManual.doc
   ENDLOCAL
   ECHO %v_filename%

this will ECHO the value:

c:\test.txt

Passing variables from one routine to another.

When "&" is used to put several commands on one line, the command processor will convert all the %variables% into their text values before executing any of the commands.

By putting ENDLOCAL and SET commands on one line you are able to SET a variable outside the SETLOCAL-ENDLOCAL block that refers to a variable created inside the block.

 @ECHO OFF
   SETLOCAL
      SET v_file=%1
   ENDLOCAL & SET v_ret1=%v_file%&SET v_ret2=450

You can use several "&" characters in order to SET several variables.


Errorlevels

none.


Availability
Internal
DOS
none
Windows
none
Windows NT
NT3.5 NT4 NT2000 NTXP NT2003