中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]帮忙改一改批处理:读取并修改注册表键值
作者:
标题: [已解决]帮忙改一改批处理:读取并修改注册表键值 上一主题 | 下一主题
cwx082
新手上路





积分 10
发帖 4
注册 2008-9-27
状态 离线
『楼 主』:  [已解决]帮忙改一改批处理:读取并修改注册表键值

能否用批处理命令实现把图中的两个键值的数据+起来后,再以 5.1.Service Pack 2 这种格式写入到注册表另一个键值中。
谢谢!




这样写的话错误,哪位大虾可以帮忙改改,感谢!
@echo off
for /f "tokens=2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CSDVersion"') do (
Set ttt=%%j||goto error)
for /f "tokens=5,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "CurrentVersion"') do (
Set xxx=%%i||goto error)
set jjj=%xxx%%ttt%
reg add "HKLM\SOFTWARE\USoft\5.0" /f /v "OSVersion" /t REG_SZ /d "%jjj%"
:error
───────────────── 版务记录 ─────────────────
执行:HAT
操作:在帖子标题中增加搜索关键字;代码加code标签
说明:原标题"[求助]批处理高手请进,帮忙改一改批处理"不利于论坛搜索
处罚:因属论坛新人,不予积分处罚
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by cwx082 on 2008-9-28 at 00:15 ]

2008-9-27 21:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 2 楼』:  

可否说详细一点。是哪两个路径的键值相加,然后添加到那个简直下?

2008-9-27 22:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cwx082
新手上路





积分 10
发帖 4
注册 2008-9-27
状态 离线
『第 3 楼』:  

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
"CurrentVersion"="5.1"
"CSDVersion"="Service Pack 2"

把上面两个键值的数据(即 5.1 和 Service Pack 2  两个)相加(合并)后,
再以  5.1.Service Pack 2  这种格式写入到注册表另一个键值中。
写入下面的键值
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\File Manager]
"OSVersion"="5.1.Service Pack 2"

2008-9-27 22:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 4 楼』:  re 3 楼

为何要相加,而不直接将 5.1.Service Pack 2 写入到 OSVersion 的值?

2008-9-27 23:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cwx082
新手上路





积分 10
发帖 4
注册 2008-9-27
状态 离线
『第 5 楼』:  

因为软件需要先获取当前用户系统版本号(也就是上面提到的两个键值),相加后写入OSVersion 键值进行校验。
而不同系统的版本号也不一样,如XPSP2-5.1.Service Pack 2、XPSP3-5.1.Service Pack 3、VISTA-6.0.Service Pack 1,只要有一个数字不对软件就报错误。

tireless大虾,能否帮忙写一下这个批处理,谢谢!

[ Last edited by cwx082 on 2008-9-27 at 23:17 ]

2008-9-27 23:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 6 楼』:  


@echo off
set p=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
for /f "skip=4 tokens=2*" %%a in ('reg query "%p%" /v CurrentVersion') do set "ver=%%b"
for /f "skip=4 tokens=2*" %%i in ('reg query "%p%" /v CSDVersion') do set "servp=%%j"
reg add "%p%\File Manager" /v OSVersion /d "%ver%.%servp%" /f
久等了,水平有限,写了好久...

[ Last edited by tireless on 2008-9-28 at 00:00 ]

2008-9-27 23:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cwx082
新手上路





积分 10
发帖 4
注册 2008-9-27
状态 离线
『第 7 楼』:  

太感谢了!问题终于成功解决。
努力学习。。。

2008-9-28 00:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qbd1313
初级用户





积分 20
发帖 8
注册 2008-1-20
状态 离线
『第 8 楼』:  

顶一下

2008-9-28 03:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: