I have a batch file that spawns a shell with a modified path with the following command:

cmd /K set PATH=%PATH%;<additional path locations>

I want to set additional environment variables for the spawned shell as well. Is there any way to do that?

3 Answers 3


Simply add another variable on a new line using set as shown in your example. You will also want to remove the /K switch from the first line as execution will stop after that line.


will create a new variable called NEWVAR with the value SOMETHING. If you wish to keep the same behavior and keep cmd open with the /K switch just put it at the end.


set PATH=%PATH%;C:\Folder;
echo %NEWVAR%
  • 1
    Thanks - that worked like I wanted it to. I put cmd /K at the end because I wanted to use the shell after it had finished executing my commands.
    – quanticle
    Aug 15, 2009 at 1:10
  • 2
    You can also write a batch that makes all necessary changes to the environment and then simply start your cmd instance with cmd /k setvars.cmd. This is for example how Visual Studio sets up its command prompt.
    – Joey
    Aug 15, 2009 at 12:26

You could also combine them into a single line as follows:

set A=foo & B=bar & C=baz

This way, you could avoid having to modify the original script and run it like so:

set A=foo & B=bar & C=baz & c:\path\to\foo.bat

  • 1
    When running this from an npm/yarn script, I had to prefix each variable assignment with set. e.g. set A=foo & set B=bar & set C=baz & c:\path\...
    – Greg K
    Jan 16, 2019 at 18:02

summing up what others here posted, along with info gleaned from another post, here's what I saved into my internet_proxy_setup.bat file:

cmd /K "set http_proxy=http://proxy.mycorp.com:1234&& set https_proxy=http://proxy.mycorp.com:1235&& echo In HTTPS Proxy Shell&& cd %~dp0"

where the cd %~dp0 just changes the shell to the same directory that the .bat file is stored in

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.