How to create a Batch File for Visual Studio Command Prompt

71,050

Solution 1

Make the first line of your batch file set up the VS environment:

call "C:\Program Files\Microsoft Visual Studio 2008\VC\vcvarsall.bat" x86_amd64
svn update
delete some files
MSBuild MySolutiuon.sln
... more commands ...

x86_amd64 is the argument used for x64 Cross Tools Command Prompt.

Once vcvarsall.bat has run, msbuild will be available in the path for the rest of the commands in your batch file.

Alternatively, if you aren't using Visual C++, you might prefer to set up the environment with this line (instead of the call to vcvarsall.bat):

For VS 2008:

call "%vs90comntools%vsvars32.bat"

For VS 2010:

call "%vs100comntools%vsvars32.bat"

For VS 2012:

call "%vs110comntools%vsvars32.bat"

For VS 2013:

call "%vs120comntools%vsvars32.bat"

For VS 2015:

call "%vs140comntools%vsvars32.bat"

For VS 2017:

Batch is now called vc not vs.

call "%vs140comntools%\..\..\VC\Auxiliary\Build\vcvars32.bat"

or better

call "%vs140comntools%\VsDevCmd.bat"

Solution 2

For Visual Studio 2015:

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64

For Visual Studio 2013:

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64

Solution 3

For Visual Studio 2019 :

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64

Solution 4

For Visual Studio 2010, this is working great:

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

Solution 5

And for Visual Studio 2012:

call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64
Share:
71,050
Nasser Hadjloo
Author by

Nasser Hadjloo

Founder @Sunkime, Former UX Manager @SimplyDesk, Speaker @TEDxTehran, Speaker @OWP1392, Sepaker @OWP1391, WindowsPhone nerd. UI / UX Designer who is into Localization, Globalization, Unicode and Web Standards ======================================= Website: http://wwww.hadjloo.ir Blog: http://Hadjloo.wordpress.com Twitter: @Hadjloo http://twitter.com/hadjloo

Updated on December 19, 2021

Comments

  • Nasser Hadjloo
    Nasser Hadjloo over 2 years

    I want to create a batch file for Visual Studio 2008 x64 Cross Tools Command Prompt to do something continuesly in my PC, here is the senario.

    svn update
    delete some files
    MSBuild MySolutiuon.sln
    delete some files
    xcopy somefiles
    MSBuild AutomateBuildConfiguration.xml /p:Configuration=Release
    xcopy some files
    delete somefiles
    xcopy some files
    
    create a Zip file if it is possible // it is not neccessary
    

    I can do most of it with simple Command Prompt and MSBuild parts with Visual Studio Command Prompt, but as these two prompt are different I cannot complete my senario.

    I have tested all command and work great for me, Give me a solution if you know what should I do.

    I checked this and didn't underestand anything Thank you in advance

  • Nasser Hadjloo
    Nasser Hadjloo about 13 years
    I'm not sure that MSBuild command will run correctly. and actually I have to have a single batch file. it will use as my in-house continues integration tool at night, so that I can not run them my self.
  • Nasser Hadjloo
    Nasser Hadjloo about 13 years
    I mean I'm not sure with this trick MSBuild will detect as an internal comand, because it is running withing simple Command prompt, doesn't it? How to do this (tun my batch file with VS prompt)?
  • Christo
    Christo almost 12 years
    +1'd. Although I couldnt find an equivalant cmd environment variable for VS2010; "call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" works for me.
  • thed0ctor
    thed0ctor over 11 years
    This works for vs12 as well. Command for me is: call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64 If you go to the vcvarsall.bat file, right click, edit, you can see all the different commands.
  • Violet Giraffe
    Violet Giraffe over 9 years
    There is environmental variable VS120COMNTOOLS (120 means Vs 2013; VS 2012 would be 110 and so forth). Using it allows to avoid hardcoding the path to the VS installation.
  • Jeremy Friesner
    Jeremy Friesner almost 6 years
    Looks like the environment variable for VS2017 should be %vs150comntools%, not %vs140comntools% ?
  • Dom
    Dom over 4 years
    What does the EXIT do at the end? Does it just exit the build tools or the whole command prompt?
  • user840718
    user840718 over 4 years
    I don't have this path. Am I missing something? Thanks!
  • Joe Gayetty
    Joe Gayetty almost 4 years
    Thanks! I had trouble finding the correct path. Since I have VS 2019 Professional I just replaced "Community" with "Professional". I would assume you would replace it with Enterprise if you have Enterprise.
  • Zyl
    Zyl almost 4 years
    This randomly breaks for me when I execute the batch file multiple times from the same instance of cmd.exe. Somehow this makes changes to the environment which persist after the batch execution has finished. Also I have to ask how this is different from C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat which is being run by the default Start Menu entry for the Developer Command Prompt.