中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 19:11
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何用当前路径替换reg文件里指定?路径要双斜杠
可打印版本  2,513 / 24
第1楼 pzppzp 发表于 2008-05-20 12:37
初级用户 发帖 52 积分 110
如何用当前路径替换reg文件里指定?路径要双斜杠
如何用当前路径替换reg文件里指定内容?路径要双斜杠
比如一个reg文件内容如下:
[HKEY_CLASSES_ROOT\ProtelPCBFile\Shell\Open]

[HKEY_CLASSES_ROOT\ProtelPCBFile\Shell\Open\Command]
@="C:\\Program Files\\Design Explorer 99 SE\\Client99SE.exe %1"

[HKEY_CLASSES_ROOT\ProtelSchematicFile]

[HKEY_CLASSES_ROOT\ProtelSchematicFile\DefaultIcon]
@="C:\\Program Files\\Design Explorer 99 SE\\System\\Advsch.dll,0"

[HKEY_CLASSES_ROOT\ProtelSchematicFile\Shell]
要把里面的"C:\\Program Files\\Design Explorer 99 SE\\"换成当前目录,路径要双斜杠. 求高人指导
第2楼 huahua0919 发表于 2008-05-20 13:26
银牌会员 发帖 780 积分 1,608
a.reg
第3楼 HAT 发表于 2008-05-20 13:32
版主 发帖 5,017 积分 9,023


change.exe
http://upload.cn-dos.net/img/427.zip
第4楼 pzppzp 发表于 2008-05-20 13:48
初级用户 发帖 52 积分 110
我把CMD文件和a.reg文件放到同一个目录下
两种都没不能替换啊
第5楼 huahua0919 发表于 2008-05-20 13:54
银牌会员 发帖 780 积分 1,608

加个pause就看到替换了

[ Last edited by huahua0919 on 2008-5-20 at 03:53 PM ]
第6楼 HAT 发表于 2008-05-20 14:48
版主 发帖 5,017 积分 9,023
如果想用3楼的代码,请确保change.exe也放到同一个目录下。
第7楼 pzppzp 发表于 2008-05-20 15:44
初级用户 发帖 52 积分 110
可是要怎么才能替换后保存起来,或者另存为B.REG也行啊?
我试了上面的全部不能保存
第8楼 huahua0919 发表于 2008-05-20 15:53
银牌会员 发帖 780 积分 1,608
改过了,保存不就是 重新定向吗
>>
第9楼 pzppzp 发表于 2008-05-20 16:01
初级用户 发帖 52 积分 110
但是他会在每行的后面加一个空格
而且有的空行会删除,有的地方会加空行,感觉 有点乱
[HKEY_CLASSES_ROOT\.ddb]
@="ProtelDesignFile"

[HKEY_CLASSES_ROOT\.pcb]

@="ProtelPCBFile"
[HKEY_CLASSES_ROOT\.sch]

@="ProtelSchematicFile"
[HKEY_CLASSES_ROOT\ProtelDesignFile]
[HKEY_CLASSES_ROOT\ProtelDesignFile\DefaultIcon]
@="D:\\dfgdf aesfa\\System\\SmartDoc.ico"
[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell]
[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell\Open]
[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell\Open\Command]
@="\"D:\\dfgdf aesfa\\Client99SE.exe\" \"%1\""
源文件在下面
[HKEY_CLASSES_ROOT\.ddb]
@="ProtelDesignFile"

[HKEY_CLASSES_ROOT\.pcb]
@="ProtelPCBFile"

[HKEY_CLASSES_ROOT\.sch]
@="ProtelSchematicFile"

[HKEY_CLASSES_ROOT\ProtelDesignFile]

[HKEY_CLASSES_ROOT\ProtelDesignFile\DefaultIcon]
@="C:\\Program Files\\Design Explorer 99 SE\\System\\SmartDoc.ico"

[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell]

[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell\Open]

[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell\Open\Command]
@="\"C:\\Program Files\\Design Explorer 99 SE\\Client99SE.exe\" \"%1\""
第10楼 bat-zw 发表于 2008-05-20 16:10
金牌会员 发帖 1,276 积分 3,105
用findstr /n就能避免这种混乱的出现。
第11楼 pzppzp 发表于 2008-05-20 16:12
初级用户 发帖 52 积分 110
具体要怎么弄啊,我把全部原文发来
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.ddb]
@="ProtelDesignFile"

[HKEY_CLASSES_ROOT\.pcb]
@="ProtelPCBFile"

[HKEY_CLASSES_ROOT\.sch]
@="ProtelSchematicFile"

[HKEY_CLASSES_ROOT\ProtelDesignFile]

[HKEY_CLASSES_ROOT\ProtelDesignFile\DefaultIcon]
@="C:\\Program Files\\Design Explorer 99 SE\\System\\SmartDoc.ico"

[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell]

[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell\Open]

[HKEY_CLASSES_ROOT\ProtelDesignFile\Shell\Open\Command]
@="\"C:\\Program Files\\Design Explorer 99 SE\\Client99SE.exe\" \"%1\""

[HKEY_CLASSES_ROOT\ProtelPCBFile]

[HKEY_CLASSES_ROOT\ProtelPCBFile\DefaultIcon]
@="C:\\Program Files\\Design Explorer 99 SE\\System\\AdvPCB.dll,0"

[HKEY_CLASSES_ROOT\ProtelPCBFile\Shell]

[HKEY_CLASSES_ROOT\ProtelPCBFile\Shell\Open]

[HKEY_CLASSES_ROOT\ProtelPCBFile\Shell\Open\Command]
@="C:\\Program Files\\Design Explorer 99 SE\\Client99SE.exe %1"

[HKEY_CLASSES_ROOT\ProtelSchematicFile]

[HKEY_CLASSES_ROOT\ProtelSchematicFile\DefaultIcon]
@="C:\\Program Files\\Design Explorer 99 SE\\System\\Advsch.dll,0"

[HKEY_CLASSES_ROOT\ProtelSchematicFile\Shell]

[HKEY_CLASSES_ROOT\ProtelSchematicFile\Shell\Open]

[HKEY_CLASSES_ROOT\ProtelSchematicFile\Shell\Open\Command]
@="C:\\Program Files\\Design Explorer 99 SE\\Client99SE.exe %1"
第12楼 bat-zw 发表于 2008-05-20 18:21
金牌会员 发帖 1,276 积分 3,105
忙,先留个地,我会回复的:
终于有时间回复了:


[ Last edited by zw19750516 on 2008-5-20 at 06:49 PM ]
第13楼 不得不爱 发表于 2008-05-20 18:56
超级版主 发帖 2,044 积分 5,310 来自 四川南充
@echo off
setlocal enabledelayedexpansion
set path0=%~dp0
set path0=%path0:\=\\%
set path1=C:\\Program Files\\Design Explorer 99 SE\\
for /f "delims=: tokens=1,*" %%a in ('findstr/n /v "+" a.reg') do (
if %%b.==. (echo.>>b.txt) ELSE (
set x=%%b
set y=!x:%path1%=%path0%!
echo !y!>>b.txt
)
)
pause
del a.reg
ren b.txt a.reg
第14楼 metoo 发表于 2008-05-20 19:19
初级用户 发帖 93 积分 195
感觉文本替换这种需求比较大的可以去学perl。。。
第15楼 bat-zw 发表于 2008-05-20 20:11
金牌会员 发帖 1,276 积分 3,105
向四川的不得不爱超级版主致之亲切的问候,同时祝福所有四川的会员兄弟!
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023