Board logo

标题: [已解决]帮忙改一改批处理:读取并修改注册表键值 [打印本页]

作者: cwx082     时间: 2008-9-27 21:16    标题: [已解决]帮忙改一改批处理:读取并修改注册表键值

能否用批处理命令实现把图中的两个键值的数据+起来后,再以 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 ]
作者: tireless     时间: 2008-9-27 22:40
可否说详细一点。是哪两个路径的键值相加,然后添加到那个简直下?
作者: cwx082     时间: 2008-9-27 22:52
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"
作者: tireless     时间: 2008-9-27 23:00    标题: re 3 楼

为何要相加,而不直接将 5.1.Service Pack 2 写入到 OSVersion 的值?
作者: cwx082     时间: 2008-9-27 23:10
因为软件需要先获取当前用户系统版本号(也就是上面提到的两个键值),相加后写入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 ]
作者: tireless     时间: 2008-9-27 23:38

@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 ]
作者: cwx082     时间: 2008-9-28 00:15
太感谢了!问题终于成功解决。
努力学习。。。
作者: qbd1313     时间: 2008-9-28 03:42
顶一下