在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 中或使用其他適合您需求的選項。

相關內容