This article was previously published under Q263105
This article has been archived. It is offered "as is" and will no longer be updated.
When an environment varibale is defined from a batch file or from the command-line, the defined variable and value do not appear in other command-line windows (Ntvdm.exe instances) and/or are not available to programs.
The set command defines a variable only for the current command line session, (Ntvdm.exe).
When you double-click a batch file, the batch file runs in its own NTVDM session and then closes, so the environment variable does not show up when you open a new session or look in another session to see the values.
The solution is to use setx from the Windows NT resource kit, because it can establish environment variables for a user session or define a system variable.
Setx has three modes of operation: it can define a variable for the user's session, or the system overall, or it can extract a value from the registry and set the result to the user session or the system. See the examples below:
To set a system variable: setx color blue -m
To set a user variable: setx color green
To extract a registry value and set a variable to a system variable: setx color -k HKEY_CURRENT_USER\Console\ScreenColors -m (To set a registry key value to a user session variable simply omit the -m switch)