中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-06 03:23
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请求高手救命:关于修改注册表文本的批处理!! 查看 778 回复 3
楼 主 请求高手救命:关于修改注册表文本的批处理!! 发表于 2007-10-20 01:04 ·  中国 广东 深圳 福田区 电信
初级用户
积分 87
发帖 48
注册 2006-11-06 00:57
19年会员
UID 69720
性别 男
状态 离线
本人想把一个注册表文本“机器名.reg",文本内容如下:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\system\ControlSet001\Control\ComputerName\ComputerName]
"ComputerName"="C141"
中的system用批处理把它修改成system1,变成:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\system1\ControlSet001\Control\ComputerName\ComputerName]
"ComputerName"="C141"
在本论坛找了很多高手的相关批处理,可是没有成功过。希望有人可以帮帮我,我已经12个小时没有睡觉,绞尽脑丝的要想用批处理可以把它修改成功。
2 发表于 2007-10-20 09:00 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线

@echo off&Setlocal EnableDelayedExpansion
for /f "delims=" %%a in (机器名.reg) do (
set string=%%a
set string=!string:system=system1!
echo\!string!
)


Or use sed
sed 's/system/&1/' file.reg
3 发表于 2007-10-20 11:39 ·  中国 广东 深圳 福田区 电信
初级用户
积分 87
发帖 48
注册 2006-11-06 00:57
19年会员
UID 69720
性别 男
状态 离线
万分感谢版主,已经可以了,真是强人,我在后面加了>>1.txt,把修改后的内容保存到1.txt,没有了原来的中间空行,既如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\system1\ControlSet001\Control\ComputerName\ComputerName]
"ComputerName"="C141"
但是这样已经是够了,再次谢谢lxmxn版主!;)
4 发表于 2007-10-21 04:33 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
加空行,可以:
cd.>>1.txt
论坛跳转: