Batch file 通过批处理文件从注册表值获取完整且正确的路径

Batch file 通过批处理文件从注册表值获取完整且正确的路径,batch-file,msbuild,Batch File,Msbuild,我需要帮助通过批处理文件从注册表值获取完整和正确的文件夹路径。 我有这样一个代码: @echo off setlocal ENABLEEXTENSIONS set R_MSBUILD_KEY="\\.\HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0" set R_MSBUILD_VALUE="MSBuildToolsPath" REM Get MSBUILD path from registry FOR /f "tokens=1,2,3,4

我需要帮助通过批处理文件从注册表值获取完整和正确的文件夹路径。 我有这样一个代码:

@echo off
setlocal ENABLEEXTENSIONS
set R_MSBUILD_KEY="\\.\HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0"
set R_MSBUILD_VALUE="MSBuildToolsPath"

REM Get MSBUILD path from registry
FOR /f "tokens=1,2,3,4" %%A IN ('REG QUERY %R_MSBUILD_KEY% /v %R_MSBUILD_VALUE% 2^>nul') DO SET MSBUILD_PATH=%%C%%D

if defined MSBUILD_PATH (
    @ECHO MSBUILD = %MSBUILD_PATH%\MSBuild.exe
) else (
    @echo %R_MSBUILD_KEY%\%R_MSBUILD_VALUE% not found.
)
作为响应,我收到以下路径:

MSBUILD = C:\ProgramFiles\MSBuild.exe
而不是C:\Program Files x86\MSBuild\12.0\bin\amd64\MSBuild.exe


我的问题是,我无法理解如何在实际所在的文件夹中使用空格检索完整和正确的路径。在我的情况下,如何接收完整和正确的路径

在没有看到reg查询输出的情况下,我无法确定,但请查看这一行是否为您提供了正确的输出

FOR /f "tokens=1,2,*" %%A IN ('REG QUERY %R_MSBUILD_KEY% /v %R_MSBUILD_VALUE% 2^>nul') DO SET "MSBUILD_PATH=%%C"

您可以在“程序文件”中使用指向某个内容的路径的任何其他键/值。