Board logo

标题: [求助]如何用当前路径替换ini文件里指定内容?新问题 [打印本页]

作者: pzppzp     时间: 2008-5-19 19:16    标题: [求助]如何用当前路径替换ini文件里指定内容?新问题
今天发现一点新问题,在8楼

如何用当前路径替换ini文件里指定内容?
比如一个INI文件内容如下:
EditorName=All
CallBack=
Sel File Type=
WholeProject=True
Count=0

AccelImporter=C:\Program Files\Design Explorer 99 SE\System\LoadAccel.INS
ArngeCmp=C:\Program Files\Design Explorer 99 SE\System\ArrangeComponents.INS
AutoPlacer=C:\Program Files\Design Explorer 99 SE\System\AutoPlacer.INS
Color 8=16777215
Color 9=16777215
要把里面的"C:\Program Files\Design Explorer 99 SE\"换成当前目录
求高人指导

Last edited by pzppzp on 2008-5-20 at 06:08 PM ]

作者: zqz0012005     时间: 2008-5-19 19:26
@echo off&SETLOCAL ENABLEDELAYEDEXPANSION
for /f "delims=" %%a in (a.ini) do (
set path=%%a
call set path=%%path:C:\Program Files\Design Explorer 99 SE\=!cd!\%%
echo.!path!>>a2.ini
)
pause

作者: pzppzp     时间: 2008-5-19 19:39
谢谢啦

作者: HAT     时间: 2008-5-19 19:53
@echo off
change a.ini /from "C:\Program Files\Design Explorer 99 SE\" /to %~dp0


change.exe
http://upload.cn-dos.net/img/427.zip

作者: metoo     时间: 2008-5-19 20:25
我记得inf文件自己可以用通配符的。。ini不熟悉。。不过这种工作貌似直接找个记事本搜索替换更省事

作者: HAT     时间: 2008-5-19 21:53
如果你是网管,你负责1000台电脑实施这个操作,手工?

作者: pzppzp     时间: 2008-5-20 12:38
谢谢各位了

作者: pzppzp     时间: 2008-5-20 18:07
用二楼兄弟的有点小问题:
[PCB Libraries]
Path=C:\Program Files\Design Explorer 99 SE\Library\pcb\Advpcb.ddb
Prompt=PCB Libraries
SelFileType=All files(*.*)
EditorName=All
Sel File Type=All files(*.*)
WholeProject=False
TypeCount=2
Count=1
File0=D>MSACCESS:$RP>C:\Program Files\Design Explorer 99 SE\Library\pcb$RN>Advpcb.ddb$OP>$ON>PCB Footprints.lib$ID>21$ATTR>0$E>PCBLIB$STF>
[File Open]
如上内容,下面的那个不会替换,好像前面有特性字符就不行.

作者: metoo     时间: 2008-5-20 19:09
Originally posted by HAT at 2008-5-19 09:53 PM:
如果你是网管,你负责1000台电脑实施这个操作,手工?

修改一个然后用copy火xcopy命令写个覆盖文件的批处理。。当然你要说你管的电脑每台路径都有区别那就当我没说了

作者: pzppzp     时间: 2008-5-20 19:34
回九楼
这是绿化软件用,每人使用的目录可能不一样,如果每次要手工设定目录,就麻烦了
有批处理双击就搞定,不好吗

作者: metoo     时间: 2008-5-20 19:51
Originally posted by pzppzp at 2008-5-20 07:34 PM:
回九楼
这是绿化软件用,每人使用的目录可能不一样,如果每次要手工设定目录,就麻烦了
有批处理双击就搞定,不好吗

绿软用的话又是另一种说法,你的方法有很多
批处理直接用reg命令或者直接用echoXXX>>XX.reg生成reg的方法,没必要写个修改reg的批处理
用inf修改注册表。。这个可以用通配符

Last edited by metoo on 2008-5-20 at 08:53 PM ]

作者: pzppzp     时间: 2008-5-20 20:24
晕,越来越不明白了,修改INI文件,怎么变成注册表了?

作者: metoo     时间: 2008-5-20 20:27
- - 靠。。偶错了。。偶闪
不过直接生成一个貌似比修改还要快点。。
偶和别个帖给看串了

Last edited by metoo on 2008-5-20 at 08:53 PM ]

作者: bat-zw     时间: 2008-5-20 20:34    标题: 仅仅是修改二楼的:

@echo off
for /f "delims=" %%a in (a.ini) do (
set puth=%%a
setlocal enabledelayedexpansion
set puth=!puth:C:\Program Files\Design Explorer 99 SE\=%~dp0!
echo.!puth!
endlocal
)
pause


Last edited by zw19750516 on 2008-5-20 at 08:59 PM ]

作者: pzppzp     时间: 2008-5-20 20:57
回14楼的,会多出一个斜杠
Y:\sdfdrgfs\sdgsdfs\\

作者: bat-zw     时间: 2008-5-20 20:58    标题: 是我大意了,已修正:
是我大意了,已在14楼修正。
附运行结果如下:


Path=D:\批处理\Library\pcb\Advpcb.ddb
Prompt=PCB Libraries
SelFileType=All files(*.*)
EditorName=All
Sel File Type=All files(*.*)
WholeProject=False
TypeCount=2
Count=1
File0=D>MSACCESS:$RP>D:\批处理\Library\pcb$RN>Advpcb.ddb$OP>$ON>PCB Footprints.l
ib$ID>21$ATTR>0$E>PCBLIB$STF>

请按任意键继续. . .






Last edited by zw19750516 on 2008-5-20 at 09:00 PM ]

作者: pzppzp     时间: 2008-5-20 21:19
谢谢,终于搞定

作者: terse     时间: 2008-5-20 21:31
Originally posted by pzppzp at 2008-5-20 21:19:
谢谢,终于搞定

虽然 楼主说搞定了 我觉得还是 CALL出来好

作者: zqz0012005     时间: 2008-5-20 22:01
Originally posted by pzppzp at 2008-5-20 06:07 PM:
用二楼兄弟的有点小问题:

Path=C:\Program Files\Design Explorer 99 SE\Library\pcb\Advpcb.ddb
Prompt=PCB Libraries
SelFileType=All files(*.*)
EditorName=All
Sel File ...


把call set path=%%path:C:\Program Files\Design Explorer 99 SE\=!cd!\%%
改为set path=!path:C:\Program Files\Design Explorer 99 SE\=%cd%\!
就没事了
call变量延迟竟还有这等问题?头一次碰到

呼唤达人来解释一下