Я пытаюсь настроить пути к инструментам VS, чтобы запускать их в командной строке, как показано ниже.https://msdn.microsoft.com/en-us/library/x4d2c09s.aspx
Я запускаю vcvarsall x64
командную строку с повышенными привилегиями и проверяю содержимое переменной INCLUDE
:
Затем я закрываю командную строку, открываю ее снова и проверяю INCLUDE
переменную:
Как видите, изменения были утеряны, когда я закрыл CMD. Как мне убедиться, что они попадут в системную среду?
Если это имеет значение, я использую Win 8.1.
решение1
Это происходит потому, что пакетные файлы, которые он запускает, используют Set
для установки переменных среды ( C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat
то, что запускается при запуске vcvarsall x64
).
Но Set
устанавливает переменные только для текущего сеанса командной строки. Вам нужно использовать , Setx
чтобы он "прилипал" между сеансами командной строки.
Для получения дополнительной информации, возможно, ознакомьтесь с другими вопросами и ответами SU:
- Что такое PATH и другие переменные среды, и как их установить или использовать?
- Переменная окружения не сохраняется
- Установите переменные среды из командной строки и сделайте их глобальными
- В чем разница между SETX и SET в переменных среды в Windows?
Редактировать после комментариев:
«Но заданные команды были в сценарии по умолчанию»
VCVarsAll предназначен для запуска с целью настройки среды для отдельной сборки/действия, которое вы собираетесь выполнить, а не для их постоянной установки.
Visual Studio устанавливает специальные записи «командной строки» для доступа к инструментам (из вашей ссылки: «...а затем выберите одну из командных строк собственного инструмента или кросс-инструментальных командных строк»), и эти специальные сочетания клавиш командной строки запускают пакетный файл, чтобы гарантировать правильную настройку при использовании этих сочетаний клавиш.
Вы можете воспроизвести эти сочетания клавиш, используя свои собственные...
Создайте новый ярлык для cmd /k "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
, который запустит пакетный файл (используя x64 в качестве параметра среды), а затем оставьте окно командной строки открытым.
Затем используйте этот ярлык, чтобы открыть командную строку, когда вам понадобится воспользоваться инструментами.
решение2
Да, вы можете извлечь среду в файл:
cmd /C "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && set > d:\t.txt
Затем вы можете напрямую включить этот файл в makefile или использовать другой вариант, который соответствует вашим потребностям.