在cmd中设置环境变量没有效果

在cmd中设置环境变量没有效果

我正在尝试设置 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 问题和答案:

评论后编辑:

“但设置的命令是在默认脚本中”

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 中,或者使用其他适合您需要的选项。

相关内容