当前位置:编程学习 > 网站相关 >>

DOS批处理操作注册表中带环境变量的路径

 

在写DOS批处理脚本操作注册表的时候,经常会遇到一些特殊路径,这些路径中带有环境变量(如:%USERPROFILE%),必须将环境变量扩展出来,才能得到真实的路径。今天就遇到过这样的问题,Google、百度无果,只好自己动手,终于找到解决方法,贴出来分享一下:

 

 

 

 

@echo off 

 

set KEY="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" 

for /F "tokens=2* delims=    " %%A in ('reg query %KEY% /v Startup') do set STARTUP_PATH=%%B 

 

echo %STARTUP_PATH% 

call set STARTUP_PATH=%STARTUP_PATH% 

echo %STARTUP_PATH% 

 

pause 

 

 

使用call就可以将环境变量扩展出来,如果去掉直接用set STARTUP_PATH=%STARTUP_PATH%,其中的环境变量就扩展不出来。

所以上面的脚本可以写成:

 

 

@echo off 

 

set KEY="HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" 

for /F "tokens=2* delims=    " %%A in ('reg query %KEY% /v Startup') do call set STARTUP_PATH=%%B 

 

echo %STARTUP_PATH% 

 

pause   

 

摘自 LiXianlin's Spaces

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,