Home XP Commands
XP Syntax

ENDLOCAL

End localisation of environment changes in a batch file.

Syntax
      ENDLOCAL

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.exe session will delete all Environment Variables created with the SET command.

For example:

   @ECHO off
   SETLOCAL 
      SET _filename=c:\test.txt   
   SETLOCAL
      SET _filename=H:\UserManual.doc
   ENDLOCAL    
   ECHO %_filename% - this will ECHO the value "c:\test.txt"


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

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.

For Example:

   @ECHO OFF
   SETLOCAL
      SET _file=%1
   ENDLOCAL & SET _ret1=%_file%& SET _ret2=450

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

"A good place to visit, but a poor place to stay" - Josh Billings

Related Commands:

SETLOCAL - Begin localisation of environment variables in a batch file.

Equivalent Linux BASH commands:

readonly - Mark variables/functions as readonly



Back to the Top

Simon Sheppard
SS64.com