![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 00:57 |
共 48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]请教,判断注册表键值是否存在? |
| 可打印版本 1,789 / 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 |