Приведенный ниже код является выдержкой из файла vcvarsall.bat
, используемого для
установите переменные среды для командной строки Visual С++.
Из-за ошибок (упомянутых в коде как операторы REM) переменные среды не установлены.
:x86
if exist "%~dp0bin" echo "%~dp0bin exists"
REM The above line gives "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin exists" as output.
if not exist "%~dp0bin\vcvars32.bat" goto missing
call "%~dp0bin\vcvars32.bat"
REM The above line gives 'C:\Program' is not recognized as an internal or external command as output.
goto :SetVisualStudioVersion
Поскольку переменные среды не установлены, я столкнулся с ошибками во время создания проекта nmake.
Я рассмотрел этот вопрос SO и этот post, но обходные пути не помогло.
Может ли кто-нибудь предложить обходной путь для вызова call
с пробелами и скобками в пути?
Edit:
Я положил тестовый оператор echo
в начале вызываемого файла vcvars32.bat. Если бы файл был запущен, этот оператор должен был быть выполнен с инструкцией, напечатанной на экране. Более того, я уверен, что поток программы проходит через блок с меткой :x86
, потому что выполняются теги тестового эха, которые помещаются там.
Изменить 2:
После выполнения предложений от Paul and Co изменили обычную команду set
на расширенный синтаксис, который заключен в кавычки.
При запуске vcvars32.bat выполнение останавливается на следующих строках:
@if not "%WindowsSDK_ExecutablePath_x86%" == "" (
@set "PATH=%WindowsSDK_ExecutablePath_x86%;%PATH%"
)
Показанная ошибка:
\Microsoft was unexpected at this time.