中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何把INI文件中路径的\(正斜杠)修改成/(反斜杠)
作者:
标题: 如何把INI文件中路径的\(正斜杠)修改成/(反斜杠) 上一主题 | 下一主题
slayer12345
新手上路





积分 10
发帖 4
注册 2008-4-26
状态 离线
『楼 主』:  如何把INI文件中路径的\(正斜杠)修改成/(反斜杠)

我是脚本菜鸟,特来请教各位大侠们,问题是这样的我有一个配置文件XXX.ini
其中[ABC]段中的
BCD键对应的值为"c:\dir1\dir2"
我现在想修改为"c:/dir1/dir2"
请问如何做?还望大侠们教教小弟,谢谢先

2008-4-26 22:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slayer12345
新手上路





积分 10
发帖 4
注册 2008-4-26
状态 离线
『第 2 楼』:  

没人回答啊?能不能有人告诉我这个能不能做到,或者有没有什么思路呢?

2008-4-26 22:54
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 3 楼』:  

set /?

2008-4-26 22:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 4 楼』:  

把XXX.ini中的内容全贴上来...我也深爱文本输出。。

2008-4-26 23:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  

&&完全能做到,使用变量替换再改写xxx.ini就可以了,因楼主没有帖出具体内容,所以仅写下以下参考代码,请自己修改了:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type xxx.ini') do (
     set str=%%i
     set str=!str:c:\dir1\dir2=c:/dir1/dir2!
     set /a n+=1
     if !n! equ 1 (
        echo !str!>xxx.ini
        ) else (
        echo !str!>>xxx.ini
     )
)
echo 已对xxx.ini执行改写。
pause>nul
[ Last edited by zw19750516 on 2008-4-27 at 12:42 AM ]



批处理之家新域名:www.bathome.net
2008-4-27 00:34
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-4-27 12:34 AM:
&&完全能做到,使用变量替换再改写xxx.ini就可以了,因楼主没有帖出具体内容,所以仅写下以下参考代码,请自己修改了:
[code]
@echo off&setloca ...

想破脑袋想不到 if !n! equ 1 这句在这里有什么用?~

2008-4-27 01:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
nipo
中级用户





积分 228
发帖 106
注册 2008-4-26
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-4-27 12:34 AM:
&&完全能做到,使用变量替换再改写xxx.ini就可以了,因楼主没有帖出具体内容,所以仅写下以下参考代码,请自己修改了:
[code]
@echo off&setloca ...

使用变量替换!

好办法!!!

2008-4-27 01:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slayer12345
新手上路





积分 10
发帖 4
注册 2008-4-26
状态 离线
『第 8 楼』:  

zw19750516

谢谢您的回复,可能我的意图描述的不清楚。我再描述一边,具体需求是我想修改一个配置文件
例如我有XXX.INI文件
然后有一个段[mysqld] (熟悉mysql的人应该知道这是mysql的配置文件了;))
然后有一个key叫basedir,它的值会是一个文件路径,至于路径具体是什么这个是不确定的,但是这个路径中的斜杠是\,我想把它修改成这个斜杠/

如果编程的话就很容易,一个函数就可以把字符串中的\斜杠给修改掉,但是用DOS批处理如何修改呢?

2008-4-28 22:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 9 楼』:  

描述再清楚也不管用,最好把源文件贴上来,并且把要修改的地方高亮标记一下。。

2008-4-28 22:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  

最直接的描述是把你的ini的那段内容贴出来

2008-4-28 22:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
metoo
初级用户





积分 195
发帖 93
注册 2006-10-28
状态 离线
『第 11 楼』:  

- - 用搜索替换多方便啊

2008-4-28 22:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slayer12345
新手上路





积分 10
发帖 4
注册 2008-4-26
状态 离线
『第 12 楼』:  

源文件很简单,就是一个INI文件,我只要修改下面basedir和datadir后面路径的值
下面这个basedir的值虽然是"e:\mysql"但是这个路径是不确定的,会变得,有可能是任意一个有效的文件夹路径,但是我就是想把\修改成/,因为mysql在这个配置文件中要求斜杠要用/
[mysqld]
#Path to installation directory. All paths are usually resolved relative to this.
basedir="e:\mysql"

#Path to the database root
datadir="e:\mysql\data\"

2008-4-28 23:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 13 楼』:  

我开始就是想通过变量替换把"\"替换成"/",就是因为楼主没贴出源码,担心会把不要替换的"\"也替换了,现在简单了,如下:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('type xxx.ini') do (
     set str=%%i
     set str=!str:^\=^/!
     set /a n+=1
     if !n! equ 1 (
        echo !str!>xxx.ini
        ) else (
        echo !str!>>xxx.ini
     )
)
echo 已对xxx.ini执行改写。
pause>nul




批处理之家新域名:www.bathome.net
2008-4-28 23:27
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: