楼 主
如何用当前路径替换reg文件里指定?路径要双斜杠
发表于 2008-05-20 12:37 · 中国 广东 深圳 电信
初级用户
★★
积分 110 发帖 52 注册 2007-07-25 16:12 19年会员 UID 94014 性别 男
状态 离线
如何用当前路径替换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 楼
发表于 2008-05-20 13:26 · 中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
a.reg
@echo off&&setlocal enabledelayedexpansion
set path0=%~dp0
set path1=%path0:\=\\%
set path2=C:\\Program Files\\Design Explorer 99 SE\\
for /f "delims=" %%i in (a.reg) do (
set x=%%i
set t=!x:%path2%=%path1%!
echo !t!
)
第 3 楼
发表于 2008-05-20 13:32 · 中国 上海 联通
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off
change a.reg /from "\\" /to "\" /in "C:\\Program Files\\Design Explorer 99 SE\\"
change a.reg /from "C:\Program Files\Design Explorer 99 SE\" /to "%~dp0"
change a.reg /from "\" /to "\\" /in "%~dp0"
change.exe
http://upload.cn-dos.net/img/427.zip
第 4 楼
发表于 2008-05-20 13:48 · 中国 广东 深圳 电信
初级用户
★★
积分 110 发帖 52 注册 2007-07-25 16:12 19年会员 UID 94014 性别 男
状态 离线
我把CMD文件和a.reg文件放到同一个目录下
两种都没不能替换啊
第 5 楼
发表于 2008-05-20 13:54 · 中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
@echo off&&setlocal enabledelayedexpansion
set n=0
set path0=%~dp0
set path1=%path0:\=\\%
set path2=C:\\Program Files\\Design Explorer 99 SE\\
for /f "delims=" %%i in ('type a.reg') do (
set x=%%i
set t=!x:%path2%=%path1%!
if !n! equ 1 (echo. >>b.txt)
if !n! equ 3 (echo. >>b.txt)
if !n! equ 4 (echo. >>b.txt)
if !n! equ 6 (echo. >>b.txt)
echo !t! >>b.txt
set/a n+=1
)
pause
加个pause就看到替换了
[
Last edited by huahua0919 on 2008-5-20 at 03:53 PM ]
第 6 楼
发表于 2008-05-20 14:48 · 中国 上海 联通
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
如果想用3楼的代码,请确保change.exe也放到同一个目录下。
第 7 楼
发表于 2008-05-20 15:44 · 中国 广东 深圳 福田区 电信
初级用户
★★
积分 110 发帖 52 注册 2007-07-25 16:12 19年会员 UID 94014 性别 男
状态 离线
可是要怎么才能替换后保存起来,或者另存为B.REG也行啊?
我试了上面的全部不能保存
第 8 楼
发表于 2008-05-20 15:53 · 中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
第 9 楼
发表于 2008-05-20 16:01 · 中国 广东 深圳 福田区 电信
初级用户
★★
积分 110 发帖 52 注册 2007-07-25 16:12 19年会员 UID 94014 性别 男
状态 离线
但是他会在每行的后面加一个空格
而且有的空行会删除,有的地方会加空行,感觉 有点乱
[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 楼
发表于 2008-05-20 16:10 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105 发帖 1,276 注册 2008-03-08 13:00 18年会员 UID 112398 性别 男
状态 离线
用findstr /n就能避免这种混乱的出现。
批处理之家新域名:www.bathome.net
第 11 楼
发表于 2008-05-20 16:12 · 中国 广东 深圳 福田区 电信
初级用户
★★
积分 110 发帖 52 注册 2007-07-25 16:12 19年会员 UID 94014 性别 男
状态 离线
具体要怎么弄啊,我把全部原文发来
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 楼
忙,先留个地,我会回复的:
发表于 2008-05-20 18:21 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105 发帖 1,276 注册 2008-03-08 13:00 18年会员 UID 112398 性别 男
状态 离线
终于有时间回复了:
@echo off
set puth1=C:\\Program Files\\Design Explorer 99 SE\\
set puth2=%~dp0
set puth2=%puth2:\=\\%
for /f "tokens=1* delims=: " %%i in ('findstr /n ".*" a.reg') do (
set str=%%j&set /a n+=1
setlocal enabledelayedexpansion
if defined str set str=!str:%puth1%=%puth2%!
if !n! equ 1 (
echo.!str!>a.reg
) else (
echo.!str!>>a.reg
)
endlocal
)
echo 替换完成!
pause>nul
[
Last edited by zw19750516 on 2008-5-20 at 06:49 PM ]
批处理之家新域名:www.bathome.net
第 13 楼
发表于 2008-05-20 18:56 · 中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310 发帖 2,044 注册 2005-09-26 12:00 20年会员 UID 42843 性别 男 来自 四川南充
状态 离线
@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 楼
发表于 2008-05-20 19:19 · 中国 江苏 苏州 电信
初级用户
★★
积分 195 发帖 93 注册 2006-10-28 08:20 19年会员 UID 68626 性别 男
状态 离线
感觉文本替换这种需求比较大的可以去学perl。。。
第 15 楼
发表于 2008-05-20 20:11 · 中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105 发帖 1,276 注册 2008-03-08 13:00 18年会员 UID 112398 性别 男
状态 离线
向四川的不得不爱超级版主致之亲切的问候,同时祝福所有四川的会员兄弟!
批处理之家新域名:www.bathome.net
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正