|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『楼 主』:
[求助]请教怎样用批处理重命名注册表的某个键
比如
[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]的
"\\DosDevices\\C:"=hex:fc,57,b2,d9,4e,68,cb,4d,ab,79,03,cf,a2,f6,b7,50
重命名为
"\\DosDevices\\Y:"=hex:fc,57,b2,d9,4e,68,cb,4d,ab,79,03,cf,a2,f6,b7,50
谢谢。
|
|
2010-12-11 15:20 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
2 楼』:
@echo off
set n=HKLM\SYSTEM\MountedDevices
set m=\DosDevices\
for /f "tokens=2* delims= " %%a in ('reg query %n% /v "%m%C:"') do (
reg add %n% /v "%m%Y:" /d %%b /t %%a /f
reg delete %n% /v "%m%C:" /f
) delims=后为一个tab制表符
[ Last edited by Hanyeguxing on 2010-12-11 at 23:17 ]
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2010-12-11 16:22 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
3 楼』:
谢谢楼上的朋友。
刚才试了一下,似乎不行,不知道是否是我的系统问题,我的是精简版的,也许缺少某个命令行程序吧。
能否提示一下会调用什么命令行程序?
已改为tab制表符。
再次感谢。
[ Last edited by dosshuini on 2010-12-11 at 19:09 ]
|
|
2010-12-11 18:55 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
4 楼』:
刚在完整的系统中测试,也不行。可以排除缺少文件的原因。
|
|
2010-12-11 19:17 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
5 楼』:
测试用:
@echo off
set n=HKLM\SYSTEM\MountedDevices
set m=\DosDevices\
for /f "tokens=2* delims= " %%a in ('reg query %n% /v "%m%C:"') do (
echo %%b和%%a
pause 把这个结果贴上来(delims=后为一个tab制表符)
[ Last edited by Hanyeguxing on 2010-12-12 at 00:18 ]
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2010-12-11 23:17 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
6 楼』:
运行后没有反应。我的系统是windows2003 sp2
|
|
2010-12-12 11:37 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
|
2010-12-12 12:07 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
8 楼』:
汗。。。
重新来过,附上图片两张:
图1-运行5楼代码
图2-运行7楼代码
|
|
2010-12-12 12:20 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
9 楼』:
图1中的Tab制表符无法直接输入,复制黏贴后丢失。
|
|
2010-12-12 12:23 |
|
|
726842270
初级用户
枫中残雪
积分 65
发帖 43
注册 2010-4-29 来自 吉林省长春市
状态 离线
|
『第
10 楼』:
LZ似乎不了解FOR的变量在CMD中和P的区别,在CMD下不能用%%A这是P的写法,S要写成%A才对
|
|
2010-12-12 12:24 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
11 楼』:
我对批处理知之甚少,也就会写个copy之类最简单的东西。我现在想搞个一键将现有系统做成ramos的批处理,目前就卡在了重命名\\DosDevices\\C:为\\DosDevices\\Y:上,因为每台机器\\DosDevices\\C:的值都不同,所以需要保留不处理,而仅仅是更改一下它的键名,即盘符。
我之前的想法是批处理先导出MountedDevices项为1.reg,然后删除注册表中这个项,接着替换1.reg中的\\DosDevices\\C:为\\DosDevices\\Y:,最后重新导入1.reg。
无奈能力不够,替换这一环没有成功,不知道是否是因为含有“\”":"等特殊字符的缘故。
故注册了上坛子来求教。
[ Last edited by dosshuini on 2010-12-12 at 12:53 ]
|
|
2010-12-12 12:38 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
|
2010-12-12 13:38 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
13 楼』:
谢谢Hanyeguxing的耐心!
直接点击bat文件,一闪而过,注册表没有发生变化,拖到cmd运行,也无反应。
|
|
2010-12-12 13:44 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
14 楼』:
难道是win2003不支持??
|
|
2010-12-12 13:47 |
|
|
dosshuini
新手上路
积分 10
发帖 10
注册 2010-12-10
状态 离线
|
『第
15 楼』:
哈哈,成功了!
我试着将tab制表符改为空格符,居然立马生效!
谢谢Hanyeguxing,谢谢!
|
|
2010-12-12 14:16 |
|