中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 求一个修改ini文件的批处理 上一主题 | 下一主题
fzfchao
初级用户





积分 37
发帖 18
注册 2007-1-8
状态 离线
『楼 主』:  求一个修改ini文件的批处理

Config.ini文件中有个路径:

[Other]
LanguageID=2052
Last=39155
BossKey=Shift+Ctrl+Z
[network]
OutLocalTcpPort=3938
OutLocalUdpPort=4523
LocalTcpPort=3044
LocalUdpPort=2734
MaxAppPeerCount=25
MaxConnectPendingCount=50
Upnp=1
WMPPath=E:\MPUI\MPUI.exe
RMPath=E:\MPUI\MPUI.exe
[network_BandWidth]
CustomBandWidth=0
MaxDnBandWidth=1
MaxUpBandWidth=1024
[network_PeerAgent]
PeerAgent=0
PeerAgentType=
PeerAgentServerName=


如何用批处理把其中
WMPPath=E:\MPUI\MPUI.exe
RMPath=E:\MPUI\MPUI.exe

中的路径E:\MPUI\MPUI.exe修改为%TP%\MPUI\MPUI.exe
(%TP%\MPUI\MPUI.exe为相对路径,要先转为绝对路径后再修改到INI文件中)

2007-4-3 10:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


@Echo Off&SetLocal EnableDelayedExpansion
::这里设置TP变量的值!
Set TP=C:\WINDOWS
Copy nul new_config.ini >nul
for /f "delims=" %%a in (config.ini) do (
        set str=%%a
        echo !str!|findstr /i "Path=" >nul && set str=!str:E:=%TP%!&echo !str! >>new_config.ini||echo !str!>>new_config.ini
)
notepad new_config.ini


2007-4-4 01:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 3 楼』:  

lxmxn果然厉害。没有能难到你的。

佩服佩服。

2007-4-4 01:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复
a201341717
贫困用户





积分 -2
发帖 20
注册 2007-1-30
状态 离线
『第 4 楼』:  



   此帖被 -7 点积分      点击查看详情   
评分人:【 NaturalJ0 分数: -3  时间:2007-4-4 03:06
评分人:【 baomaboy 分数: -4  时间:2007-4-4 03:11




[img=2,1]http://c.py99.net/pic/f?v=20074/31311547.jpg[/img]
2007-4-4 02:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
cracky
初级用户





积分 28
发帖 10
注册 2007-10-18
状态 离线
『第 5 楼』:  

我有疑问,如果在echo !str!|findstr /i "Path=" >nul && set str=!str:E:=%TP%!&echo !str! >>new_config.ini||echo !str!>>new_config.ini中的%TP%需要用!TP!来表示时,是写成set str=!str:E:=!TP!!吗

   此帖被 +2 点积分      点击查看详情   
评分人:【 huahua0919 分数: +2  时间:2007-12-12 15:39


2007-12-12 15:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 6 楼』:  

是的,你学的很快,我给你加分

2007-12-12 15:38
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
cracky
初级用户





积分 28
发帖 10
注册 2007-10-18
状态 离线
『第 7 楼』:  

不对,我试过,这样是不行的,假设我的被替换文本是a.txt其中格式是
a=1kk
b=2kk
c=3kk
如果我前面设置变量TP是4我用set str=!str:3=!TP!!的方法去改变c的值结果是生成的结果是
a=1kk
b=2kk
c=kkTP

2007-12-12 15:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 8 楼』:  

%PATH:str1=str2%
只能是字符替换!
你的和斑竹的有差别,你好好看上面他的帖子@!

2007-12-12 16:01
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
cracky
初级用户





积分 28
发帖 10
注册 2007-10-18
状态 离线
『第 9 楼』:  

不明白我的和斑竹的有什么差别,仅仅是斑竹用的是%TP%,而我想使用!TP!而已.
而且我又发现了一个问题,如果查找到的内容是一个带&的字串,比如说是a=jdbc\:mysql\://localhost\:3306/digdb?useUnicode\=true&characterEncoding\=GBK那么,当我意图更换3306的时候就会告诉我:'characterEncoding\' 不是内部或外部命令,也不是可运行的程序,难道说符号&有特殊的意义?请前辈明示

2007-12-13 08:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 10 楼』:  

set str=!str:3=!TP!!
问题很简单,因为变量延迟开启以后,解析器每次对一行进行解析的时候,会查找其中是否有!,而上面这个简单的式子中存在两对!!,但解析器根本不知道那对对那对(其实是从左到右进行匹配的)所以,解析器会先分析!str:3=!这个变量, 而在这之前这个变量没有定义,所以就被定义成空了,后面的也是这样!

2007-12-18 09:37
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 11 楼』:  

双层!!欠套是非常危险的问题

2007-12-18 09:38
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 12 楼』:  

同一句中不充许出现两个相同级别,相同类型的转义
有过这样的例子

set/aa=123,b=9
call echo %^a:1=%b%%
命令行下

2007-12-18 11:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 13 楼』:  



  Quote:
Originally posted by everest79 at 2007-12-18 11:44 AM:
同一句中不充许出现两个相同级别,相同类型的转义
有过这样的例子

set/aa=123,b=9
call echo %^a:1=%b%%
命令行下

以下也是两个相同级别,相同类型的,不需要转义后同样能运行!
按照匹配原则,会将替换所有%x%,可结果却不是那样!
@echo off
set x=hehe
echo %date:~-3%x%date:~2%
pause

2007-12-18 21:19
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 14 楼』:  

记得论坛里的前辈讲过,匹配是以先左后右优先处理的,你将date换成个不存的变量看看

2007-12-18 22:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 15 楼』:  

那"同一句中不充许出现两个相同级别,相同类型的转义"又为何解?
不是很明白,还望指点!

2007-12-18 22:16
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: