bat循环获取注册表下表项
在网上搜索了一下用bat读取一个注册表里面的表项名称,如果一个注册表里面后很多子项目名称,那我们这么才能全部读取出来了?但是网上大家看到的根本不是自己的要的,还不能用报错。。。
下面亲测,直接通过cmd命令 循环赋值显示表项名称。
1、先读取一个注册表路径,显示里面所有的值。
2、读取后是显示的是全部路径加名称,这个需要截取不要的,只保留我们需要的名称
例子:HKEY_CURRENT_USER\System 下的所有项目名称
@echo off
Setlocal enabledelayedexpansion
reg query "HKEY_CURRENT_USER\System"
echo "<<<<以上显示所有完整路径<<<<<<<"
set /A V= 0
for /f "tokens=3 delims=\" %%i in ('reg query "HKEY_CURRENT_USER\System"') do (
echo %%i
echo ------!V!-----
set /A V+= 1
)
pause
复制
下面注释:
delims=\ //路径的分割符号
tokens=3 //从左道右第几个分割符
查看效果,新建记事本文件,把上面的代码复制到里面,保存后把扩展改为bat即可。双击bat文件即可看结果。代码只运行windows电脑系统,其他系统不知
出处:http://huojibk.com/2022/08/1075.html
==================================
Bat获取注册表的值
应用场景
学习过程中遇到需要获取某注册表的场景:根据注册表的位置获取特定项的值。本文以钉钉为例。
实现过程
找到注册表的位置
钉钉注册表的位置为:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\钉钉
获取该位置下的某个注册表项
我们需要获取UninstallString项
对应的BAT语句为,/v
之前为注册表的位置,/v
之后为所需要的的注册表项。
REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\钉钉" /v "UninstallString"
输出如下:
获取该项的值
此时我们已经找到了该项,接下来需要输出该项的值。可以看到输出了两行内容,一行为注册表位置,一行为注册表项。获取注册表值的BAT语句为:
@echo off
Setlocal enabledelayedexpansion
for /f "skip=1 delims=: tokens=1,*" %%i in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\钉钉" /v "UninstallString"') do (
set str=%%i
set var=%%j
set "var=!var:"=!"
if not "!var:~-1!"=="=" set value="!str:~-1!C:!var!"
)
echo %value%
pause
该语句的输出为:
注:输出结果如果不要引号最后一句可改为
if not "!var:~-1!"=="=" set value=!str:~-1!C:!var!
扩展内容
判断注册表值是否存在。
@echo off
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\钉钉 >nul 2>nul&&goto A||goto B
:A
echo 存在
pause
exit
:B
echo 不存在
pause
exit
pause
出处:https://blog.csdn.net/weixin_43203591/article/details/116096275
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17359318.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!