How to Use Environment Variable Substitution in Batch Files

Article translations Article translations
Article ID: 41246 - View products that this article applies to.
This article was previously published under Q41246
Expand all | Collapse all


A feature new to the Microsoft MS-DOS packaged product is the ability to use environment variables in batch files.

These variables can be referenced by surrounding the variable with percent symbols (%). This procedure is known as environment variable substitution. However, this ability is not present at the COMMAND.COM command line, only within a batch file.


A batch file might have the following line:
   SET PATH=c:\dos\bin;c:\dos\etc;%PATH%.
%PATH% is an environment variable whose value is taken from the current environment and appended to the new PATH definition. If this is done at the command line by typing the following line, the PATH environment variable's value is not substituted, so the existing PATH will not get appended to the new PATH ("%PATH%" would be appended instead).
    SET PATH=c:\dos\binp;c:\os2\binp;%PATH%
The ability to use environment variable substitution is not restricted to existing MS-DOS environment variable names. Any variable that is defined in the environment can be extended using the method above.

If the variable specified by the SET command is not defined in the environment, the variable stays the same if used at the prompt, and is replaced by a null expression if used in a batch file.

For example, type the following command in which XYZZY is an undefined environment variable:
The commands result in the following if used at the command-line prompt:
The commands result in the following if used in a batch file:


Article ID: 41246 - Last Review: May 10, 2003 - Revision: 2.0
  • Microsoft MS-DOS 3.1
  • Microsoft MS-DOS 3.2 Standard Edition
  • Microsoft MS-DOS 3.21 Standard Edition
  • Microsoft MS-DOS 3.3 Standard Edition
  • Microsoft MS-DOS 3.3a
  • Microsoft MS-DOS 4.0 Standard Edition
  • Microsoft MS-DOS 4.01 Standard Edition
  • Microsoft MS-DOS 5.0 Standard Edition
  • Microsoft MS-DOS 5.0a
  • Microsoft MS-DOS 6.0 Standard Edition
  • Microsoft MS-DOS 6.2 Standard Edition
  • Microsoft MS-DOS 6.21 Standard Edition
  • Microsoft MS-DOS 6.22 Standard Edition
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback


Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from