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
补充:综合编程 , 其他综合 ,