中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 10:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何给注册表批量添加键值和数据? 查看 1,185 回复 12
楼 主 如何给注册表批量添加键值和数据? 发表于 2008-03-14 09:29 ·  中国 山东 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
如何给注册表批量添加键值和数据?以下是我写的代码请高手修改一下!但无法写入数据,如果数据类型为REG_DWORD应该怎么写?
set regpth="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows

NT\CurrentVersion\Image File Execution Options\CoralQQ.exe"
for %%i in (Debugger DisableHeapLookAside) do reg add %regpth% /f /v

"%%i"

[ Last edited by 5872169 on 2008-3-14 at 09:34 AM ]
2 发表于 2008-03-14 10:29 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
for %%i in (Debugger DisableHeapLookAside) do reg add %regpth% /v "%%i" /t REG_DWORD /d ... /f
3 发表于 2008-03-14 10:57 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
楼主set的变量怎么断成好几截了?
4 发表于 2008-03-14 11:11 ·  中国 山东 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
suntb,可能是粘贴的原因
5 发表于 2008-03-14 11:19 ·  中国 山东 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
huahua0919,无法通过测试,数据无法写入,你看我写的有问题吗
set regpth="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\CoralQQ.exe"
for %%i in (Debugger DisableHeapLookAside) do reg add %regpth% /v "%%i" /t REG_DWORD /d D:\安装程序\垃圾清理.bat 1 /f

Debugger的数据是:"D:\安装程序\垃圾清理.bat",DisableHeapLookAside的数据是:"1"

[ Last edited by 5872169 on 2008-3-14 at 11:27 AM ]
6 发表于 2008-03-14 11:31 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
你上面写的是错误的!现在有事回不了!
7 发表于 2008-03-14 11:35 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Debugger的数据是:"D:\安装程序\垃圾清理.bat",DisableHeapLookAside的数据是:"1"
====================
/d开关后面只能跟一个参数,也就是说一条reg add命令无法同时给两个变量赋值。写两条reg add命令不行吗,何必一定要用for呢?
8 发表于 2008-03-14 11:42 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
Originally posted by HAT at 2008-3-14 11:35:
Debugger的数据是:"D:\安装程序\垃圾清理.bat",DisableHeapLookAside的数据是:"1"
====================
/d开关后面只能跟一个参数,也就是说一条 ...


如果只有两个添加的数据 还是分开写就好了 
9 发表于 2008-03-14 11:45 ·  中国 山东 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
我是想方便一点,感觉一条一条的写太麻烦!
10 发表于 2008-03-14 12:19 ·  中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
Originally posted by 5872169 at 2008-3-14 11:45:
我是想方便一点,感觉一条一条的写太麻烦!


如果添加的数据相同的话用FOR比较适合

如果要添加不同的数据用FOR可能效率更低
11 发表于 2008-08-10 19:36 ·  中国 山东 济南 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
我就是想添加相同的数据
12 发表于 2008-08-11 01:43 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set regpth="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\CoralQQ.exe"
for %%i in (Debugger DisableHeapLookAside) do (
if "%%i" equ "Debugger" (
reg add %regpth% /v "%%i" /t REG_DWORD /d D:\安装程序\垃圾清理.bat /f
) else if "%%i" equ "DisableHeapLookAside" (
reg add %regpth% /v "%%i" /t REG_DWORD /d 1 /f
)
)
13 发表于 2008-08-11 01:46 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set regpth="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\CoralQQ.exe"
for %%i in (Debugger DisableHeapLookAside) do (
if "%%i" equ "Debugger" (
set data=D:\安装程序\垃圾清理.bat
) else if "%%i" equ "DisableHeapLookAside" (
set data=1
)
reg add %regpth% /v "%%i" /t REG_DWORD /d %data% /f
)
论坛跳转: