中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 07:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 利用WMIC读取注册表 查看 1,163 回复 5
楼 主 利用WMIC读取注册表 发表于 2007-06-17 18:26 ·  中国 北京 中国中信股份有限公司
荣誉版主
★★★
积分 2,013
发帖 718
注册 2006-02-18 07:07
20年会员
UID 50550
状态 离线
好处是不用担心reg query中可能出现的“吃”中文字符的问题。
例:
@echo off
for /f "tokens=*" %%i in ('wmic /namespace:\\root\default path stdregprov call GetStringValue hDefKey^=^^^&H80000002 sSubKeyName^="SOFTWARE\Microsoft\Windows\CurrentVersion" sValueName^="SM_ConfigureProgramsName"') do set %%i 2>nul
echo %sValue %
pause
goto :eof

读取的是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion下的SM_ConfigureProgramsName的值。
由于涉及到更改命名空间,以及特殊字符的转义,再加上WMIC命令本身就比较复杂,所以代码看起来比较乱,简单地演示一下就好。
另外由于很少使用BAT了,所以未对上面的代码做严密测试,有BUG的朋友请在下面指出,以免以讹传讹。
2 发表于 2007-06-17 19:51 ·  中国 北京 顺义区 联通
中级用户
★★
替身
积分 269
发帖 130
注册 2007-03-23 21:41
19年会员
UID 82683
性别 女
状态 离线
此贴必定记下,就像为何要学WMIC一样,注册表这方面一定要掌握,请问3742668
版主一个问题,如果用WMIC命令在系统建立用户???这个已经苦恼我很久了,其实最开始想用LDAP名称空间来实现,不过最后终没有实现,还请赐教
3 发表于 2007-06-17 20:02 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
但 reg query 写法更明了
4 发表于 2007-06-17 21:05 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
继续学习WMIC
5 发表于 2007-06-29 09:25 ·  中国 湖北 武汉 电信
新手上路
积分 10
发帖 5
注册 2007-06-14 11:01
19年会员
UID 91273
性别 男
状态 离线
还是有一定的局限性
6 好帖,学习了 发表于 2007-06-30 11:10 ·  中国 浙江 宁波 余姚市 电信
初级用户
积分 53
发帖 24
注册 2007-06-15 10:33
19年会员
UID 91393
性别 男
状态 离线
好贴,学习了。

顶一个。
论坛跳转: