My user-config.jam contains these lines:

  using msvc : 12.0express ;  # Visual C++ 2013 RC
  using msvc : 11.0express ;  # Visual C++ 2012
  using msvc : 10.0express ;  # Visual C++ 2010

Running this works fine (in \boost\trunk\libs\system\test):

>b2 -a -d2 toolset=msvc-10.0express error_code_test

As expected, the output includes:

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

But running these both fail to find the compiler:

>b2 -a -d2 toolset=msvc-11.0express error_code_test
>b2 -a -d2 toolset=msvc-12.0express error_code_test

Because there is no call to vcvarsall.bat.

vcvarsall.bat is at an similar location in all three cases:

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\vc\vcvarsall.bat"
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\vc\vcvarsall.bat"
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\vc\vcvarsall.bat"
What's wrong? Why isn't vcvarsall.bat being called for 11 and 12?