例子
@echo off
for /f "delims=" %%i in ('REG.EXE QUERY "HKEY_LOCAL_MACHINE/SOFTWARE/ut/utscada" /V "InstallDirectory"') do set InstallDir="%%i"
set InstallDir=%InstallDir:~35,-2%
echo %InstallDir%
pause
其中HKEY_LOCAL_MACHINE/SOFTWARE/ut/utscada是注册表项,InstallDirectory是要查询的值,InstallDir是查询结果。
set InstallDir=%InstallDir:~35,-2%表示将变量InstallDir的从36个字符到倒数第3个字符赋值给InstallDir(本身)。因为结果为
" InstallDirectory REG_SZ D:/Program Files/unitech/UTScada/"
dos操作注册表
reg命令
如上面的REG.EXE QUERY
DOS处理字符串
截取字符串
%variable:~start,end%
variable表示变量名,如上面的InstallDir。
start:起始地址,从0开始,负数表示倒数,如-1表示倒数第一个
end:终止地址,意义与start类似。注意不包含终止地址。如上例的-2,最终结果截取到倒数第三个字符。