我想在Visual中检索编译器cl.exe的完整路径,以便从程序中调用它。我们在注册表里有这方面的钥匙吗?该怎么做呢?
发布于 2018-06-15 15:54:54
cl.exe通常位于%VCINSTALLDIR%\bin\。默认情况下不设置VCINSTALLDIR环境变量,但打开Visual的本机工具命令提示符时将设置它。
下面是如何在这个批处理脚本中完成这个任务:
:GetVCInstallDir
@set VCINSTALLDIR=
@call :GetVCInstallDirHelper32 HKLM > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper32 HKCU > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper64 HKLM > nul 2>&1
@if errorlevel 1 call :GetVCInstallDirHelper64 HKCU > nul 2>&1
@exit /B 0
:GetVCInstallDirHelper32
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\VisualStudio\SxS\VC7" /v "14.0"') DO (
@if "%%i"=="14.0" (
@SET VCINSTALLDIR=%%k
)
)
@if "%VCINSTALLDIR%"=="" exit /B 1
@exit /B 0
:GetVCInstallDirHelper64
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7" /v "14.0"') DO (
@if "%%i"=="14.0" (
@SET VCINSTALLDIR=%%k
)
)
@if "%VCINSTALLDIR%"=="" exit /B 1
@exit /B 0因此,根据系统的比特性,它会查看其中一个注册表项。
32位
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\SxS\VC7 if VS已在系统范围内安装。HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\SxS\VC7 if VS64位
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7 if VS已在系统范围内安装。HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\SxS\VC7 if VS然后,您将为每个已安装的版本提供字符串。这是我的机器上的样子:

如果您不知道所需的版本,则需要额外的工作才能以编程方式检索正确的值,但这超出了这个问题的范围。
https://stackoverflow.com/questions/50739853
复制相似问题