中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-04 15:30
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎么实现自动查找注册表的某个键值 查看 826 回复 3
楼 主 怎么实现自动查找注册表的某个键值 发表于 2007-05-23 04:01 ·  中国 河北 石家庄 桥西区 联通
初级用户
积分 54
发帖 28
注册 2006-10-16 14:23
19年会员
UID 65980
性别 男
状态 离线
我想修改注册表
HKEY_USERS\S-1-5-21-746137067-602162358-725345543-500\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones\0
"DisplayName"="自己的名字"

但这个键值好像在每个系统中都不一样。。。我要怎么写才能自动找到这个键值呢?????请高手帮忙

[ Last edited by lzys on 2007-5-23 at 04:21 AM ]
2 发表于 2007-05-23 09:48 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
试试这个行不:
因为S-1-5-21-746137067-602162358-725345543-500在每台电脑里都不一样;
我用'reg query HKU^|findstr /v "_Classes"^|findstr "S-1-5-21"'
取得;应该具有较好的通用性;不过没有测试过;

@echo off
for /f %%a in ('reg query HKU^|findstr /v "_Classes"^|findstr "S-1-5-21"') do (
reg query %%a\Software\Microsoft\Windows\CurrentVersion\\"Internet Settings"\Lockdown_Zones\0 /v DisplayName
)


这里我只是 reg query并没有修改他;

想要修改的话;
参考上面的代码和reg /?自行修改.
3 发表于 2007-05-23 15:47 ·  中国 河北 石家庄 桥西区 联通
初级用户
积分 54
发帖 28
注册 2006-10-16 14:23
19年会员
UID 65980
性别 男
状态 离线
晕了,我可能是太笨了,研究了好半天也没把后面的代码补全。。。斑竹在帮帮忙吧。。。v DisplayName 后面我真的不知道在添加什么代码了
4 发表于 2007-05-23 16:04 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
提醒reg add /?
把我的reg query改为 reg add 至于格式参考下面;

Windows 控制台注册表工具 - 版本 3.0
版权所有 (C) Microsoft Corp. 1981-2001. 保留所有权利。


REG ADD KeyName

KeyName FullKey
远程机器的机器名 - 忽略默认到当前机器。
远程机器上只有 HKLM 和 HKU。
FullKey ROOTKEY\SubKey
ROOTKEY
SubKey 所选 ROOTKEY 下注册表项的完整名

/v 所选项之下要添加的值名

/ve 为注册表项添加空白值名<无名称>

/t RegKey 数据类型



如果忽略,则采用 REG_SZ

/s 指定一个在 REG_MULTI_SZ 数据字符串中
用作分隔符的字符
如果忽略,则将 "\0" 用作分隔符

/d 要分配给添加的注册表 ValueName 的数据

/f 不用提示就强行改写现有注册表项
论坛跳转: