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


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章