中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何用reg 来查找注表某个值,并取出某个值??
作者:
标题: [求助]如何用reg 来查找注表某个值,并取出某个值?? 上一主题 | 下一主题
workmanlr
新手上路





积分 7
发帖 7
注册 2008-12-22
状态 离线
『楼 主』:  [求助]如何用reg 来查找注表某个值,并取出某个值??

如题:
我想用reg 来查这个值:
Distinguished-Name

并出Distinguished-Name  数据中的一部分:
CN=张三,OU=ddd,OU=kkk,OU=uuuDC=Freedom,DC=org

我想要取出  张三 这个值,并付于某个变量:  set name=张三

关键是怎么取出张三这个值来??

2009-4-19 13:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jj65535
新手上路





积分 19
发帖 15
注册 2009-4-5
状态 离线
『第 2 楼』:  

你这种没环境!没准确参数!
高手们很难给你答案的!
我这个新人发个例子!自己想................

注册表环境!(操作系统WIN2003)
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER]
"Distinguished-Name"="CN=张三,OU=ddd,OU=kkk,OU=uuuDC=Freedom,DC=org"

运行环境:WIN2003 CMD
for /f "tokens=1 delims=," %%l in ('reg QUERY "HKEY_CURRENT_USER" /v "Distinguished-Name"^|find /i "CN="') do (
        for /f "tokens=2 delims==" %%m in ("%%l") do set name=%%m )
echo %name%

2009-4-19 13:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
workmanlr
新手上路





积分 7
发帖 7
注册 2008-12-22
状态 离线
『第 3 楼』:  

谢谢,操作系统是xp

2009-4-19 14:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
workmanlr
新手上路





积分 7
发帖 7
注册 2008-12-22
状态 离线
『第 4 楼』:  

我把你写的代码加存为aaa.bat
执行结果如下:
C:\>aaa

C:\>for /F "tokens=1 delims=," %l in ('reg QUERY "HKEY_CURRENT_USER" /v "Disting
uished-Name"|find /i "CN="') do (for /F "tokens=2 delims==" %m in ("%l") do set
name=%m  )

错误: 系统找不到指定的注册表项或值

C:\>echo
ECHO 处于打开状态。

2009-4-19 14:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
workmanlr
新手上路





积分 7
发帖 7
注册 2008-12-22
状态 离线
『第 5 楼』:  

你这个是要找到具体的键值,
因为这个键值是在S-1-5-21-3066645261-2536786027-3422793319-1117下面的,因为每台电脑的sid都不一样。所以不能用你这个方法来找。

还是谢谢你

2009-4-19 14:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
workmanlr
新手上路





积分 7
发帖 7
注册 2008-12-22
状态 离线
『第 6 楼』:  

各位大侠帮帮忙

2009-4-19 23:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jj65535
新手上路





积分 19
发帖 15
注册 2009-4-5
状态 离线
『第 7 楼』:  

你当然不能照抄啊!我的只是例子
注册表环境!(操作系统WIN2003)
我注明是这注册表例子为例子!
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER]
"Distinguished-Name"="CN=张三,OU=ddd,OU=kkk,OU=uuuDC=Freedom,DC=org"

你自己不能完成就要提供完整的调试环境!
注册表的完整目标位置!要没每台机器都不同就要提供多个成为比较例子的注册表例子

你这种不是固定注册表项现象
按我的水平只能用regedit 来导出大项来用其他命令来查找判断!
看其他高手的意见吧

2009-4-20 03:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
workmanlr
新手上路





积分 7
发帖 7
注册 2008-12-22
状态 离线
『第 8 楼』:  

恩,现在就是不是固定注册表项,有什么方法吗??

2009-4-20 05:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
workmanlr
新手上路





积分 7
发帖 7
注册 2008-12-22
状态 离线
『第 9 楼』:  

有办法实现吗??

2009-4-20 11:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
newxso
初级用户

l i u s s


积分 73
发帖 101
注册 2008-9-17
来自 GZ
状态 离线
『第 10 楼』:  

在Win2K工具包中有一个用来搜索注册表的工具,从整个注册表中搜索某字符串,只需几十秒时间:

dureg [/cr | /cu | /u | /lm | /a] [/s | /d] ["registry path"] ["string to search"]

    /cr                 Find the size of HKEY_CLASSES_ROOT
    /cu                 Find the size of HKEY_CURRENT_USER
    /u                  Find the size of HKEY_USERS
    /lm                 Find the size of HKEY_LOCAL_MACHINE
    /a                  All. Find the size of entire registry.

    </Subtree switch>   "registry path"  Find the size of any registry key
    e.g. dureg /lm "software\microsoft"  finds the size of the HKLM\Software\Microsoft key

    /s "string"         Search for string in the registry
    e.g. dureg /s "video" finds all occurrences of "video" in the registry

    /s  [/subtree switch] "string"   Search for string in the registry subtree
    e.g. dureg /lm /s "video" finds all occurrences of "video" in the HKLM
    (to stop a search, press Ctrl+Break)

http://support.microsoft.com/kb/317382


例如:dureg /s "Distinguished-Name" 可以从注册表中搜索包含 Distinguished-Name 字符串的项目,可以用定向符把结果保存到临时文件,或嵌套到 for 语句中处理结果。

[ Last edited by newxso on 2009-4-20 at 20:00 ]

附件 1: dureg.rar (2009-4-20 18:51, 14.74 K,下载次数: 8)
2009-4-20 18:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: