2016-02-29 46 views
1

我正在從註冊表中獲取InetSrv文件夾的路徑並保留在局部變量中。 現在嘗試在該保存的變量上更改目錄命令(CD),然後拋出錯誤。作爲環境變量的輸出捕獲的windir未被解析爲環境變量

@echo off 
SETLOCAL 
set vb_path="" 
for /f "tokens=1-2*" %%A in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" /v InstallPath') do (set vb_path=%%C) 
echo %vb_path% 
cd %vb_path% 
ENDLOCAL 

輸出

%windir%\system32\inetsrv 
The system cannot find the path specified. 

回答

1

使用CALL set "vb_path=%%C"

這將擴大%windir%部分%windir%\system32\inetsrv

@echo off 
SETLOCAL EnableExtensions 
set "vb_path=" 
for /f "tokens=1-2*" %%A in (' 
     REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" /v InstallPath 
    ') do (CALL set "vb_path=%%C") 
echo %vb_path% 
cd %vb_path% 
ENDLOCAL