中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 22:56
48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » [已解决]请教,判断注册表键值是否存在?
可打印版本  1,787 / 7
第1楼 Mekinery 发表于 2007-12-24 14:17
初级用户 发帖 32 积分 83
[已解决]请教,判断注册表键值是否存在?
判断注册表下“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\”下有没有项值为“Sysin”,键值为Wins(字符串),类型为“REG_SZ”,值为“mondy”。

1.如果有就继续执行(跳到下条指令),没有就新建---(完全匹配,包括大小写)
例如项值为“Sysin”而不能为“sysin”或其他的,键值为“Wins”而不能为“wins”或其他的,值为“mondy”而不能为“Mondy”或其他的

2.如果有就继续执行(跳到下条指令),没有就新建---(不区分大小写)

急待解决,谢谢!

[ Last edited by Mekinery on 2007-12-24 at 09:36 PM ]
第2楼 fastslz 发表于 2007-12-24 15:54
铂金会员 发帖 2,315 积分 5,493 来自 上海
第3楼 Mekinery 发表于 2007-12-24 19:04
初级用户 发帖 32 积分 83
fastslz挺风趣的,首先还是谢谢fastslz,但是没有达到我想要的结果
可能我说的不够明白吧,那我再缩减点:
判断注册表下“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Sysin”下有没有键值为Wins(字符串),类型为“REG_SZ”,值为“mondy”

再次肯定下存在一个是个字符串,名称就是“Wins”,不是“wins,WIns,..”,还有类型绝对的“REG_SZ”,不是“ REG_DWORD, REG_MULTI_SZ, REG_BINARY,REG_EXPAND_SZ,...”,键值“Wins”的数据数值是"mondy",不是“Mondy,moNdy,...”

字符串 类型 REG_SZ
二进制值 类型 REG_BINARY
DWORD 类型 REG_DWORD
...

应该需要查找,还有判断吧?

如果其中有一项不匹配就要退出,如果都匹配就跳到要执行的命令段去
这样应该好理解些吧...

[ Last edited by Mekinery on 2007-12-24 at 07:08 PM ]
第4楼 baomaboy 发表于 2007-12-24 19:40
银牌会员 发帖 554 积分 1,513
完整的注册表操作方法
这是个演示用WMI操作注册表的实例,每弹一个对话框后查看注册表相应位置你会发现WMI对注册表所作的操作,全部执行完成后脚本会自动复原此脚本对注册表的所有操作。

①创建主键、创建各类型的键值。

②读取键值并分析键值类型。

③枚举主键及键值。

④判断键或键值是否存在。

⑤查询注册表键的操作权限。

⑥监视注册表根键、主键、键值,当发现变动时提示。
第5楼 Mekinery 发表于 2007-12-24 19:55
初级用户 发帖 32 积分 83
不懂vbs呀,万一系统禁用的vbs那不等于没有用了吗?
还是批处理好点吧?
能用批处理实现就好了,还在等呀~~~
第6楼 balinger 发表于 2007-12-24 20:48
中级用户 发帖 115 积分 356
@echo off
for /f "delims=" %%i in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows') do (if "%%i"=="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Sysin" goto 1)
goto no
:1
for /f "tokens=1,2,*" %%i in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Sysin') do (if "%%i%%j%%k"=="WinsREG_SZmondy" goto yes)
:no
echo no
goto end
:yes
echo yes
:end
pause
第7楼 fastslz 发表于 2007-12-24 21:27
铂金会员 发帖 2,315 积分 5,493 来自 上海
确实2楼的只是演示给你看,其实很简单的了啦只要1个不匹配就退出



或者
第8楼 Mekinery 发表于 2007-12-24 21:36
初级用户 发帖 32 积分 83
谢谢各位,又学了新的知识,呵呵~~
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023