On CI the inherited Path runs past cmd's 8191 characters, so vcvars loaded nothing and said nothing. Load it on the system directories and put the caller's Path back after. What it keeps as __VSCMD_PREINIT_PATH is then the same each time, so the build no longer drops it.