Environment Variable to change build
Not environment, no.

If you have access to the compilation command line you can do the equivalent of #define from there:

avr-gcc ... blah blah ... -DUseFirstDir


That is most effective if you are using a Makefile build system rather than relying on the Arduino IDE which doesn't give you access to those kind of things without modifying the core configuration, which isn't nice, and certainly is neither permanent nor flexible (doesn't survive upgrades to new versions, and isn't easy to turn on and off at will).

A better IDE, though, can do it. Facilities for setting control flags like that exist within UECIDE and it's possible to tie them to menu entries to make switching options on and off easier. It's not documented how to do it though (yet).

Or you can just have a list of #define options at the top of your sketch:

/* Uncomment this to use the first directory. */
// #define UseFirstDir

// .... later ....

#ifdef UseFirstDir
    #include &lt;C:\MyFirstDir\ImportantIncludes.h&gt;
#else
    #include &lt;C:\MySecondDir\ImportantIncludes.h&gt;
#endif