中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-08 10:25
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何把INI文件中路径的\(正斜杠)修改成/(反斜杠) 查看 1,259 回复 12
楼 主 如何把INI文件中路径的\(正斜杠)修改成/(反斜杠) 发表于 2008-04-26 22:00 ·  中国 江苏 南京 电信
新手上路
积分 10
发帖 4
注册 2008-04-26 21:34
18年会员
UID 117050
性别 男
状态 离线
我是脚本菜鸟,特来请教各位大侠们,问题是这样的我有一个配置文件XXX.ini
其中[ABC]段中的
BCD键对应的值为"c:\dir1\dir2"
我现在想修改为"c:/dir1/dir2"
请问如何做?还望大侠们教教小弟,谢谢先
2 发表于 2008-04-26 22:54 ·  中国 江苏 南京 电信
新手上路
积分 10
发帖 4
注册 2008-04-26 21:34
18年会员
UID 117050
性别 男
状态 离线
没人回答啊?能不能有人告诉我这个能不能做到,或者有没有什么思路呢?
3 发表于 2008-04-26 22:55 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
set /?
4 发表于 2008-04-26 23:16 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
把XXX.ini中的内容全贴上来...我也深爱文本输出。。
5 发表于 2008-04-27 00:34 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
&&完全能做到,使用变量替换再改写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
6 发表于 2008-04-27 01:25 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
Originally posted by zw19750516 at 2008-4-27 12:34 AM:
&&完全能做到,使用变量替换再改写xxx.ini就可以了,因楼主没有帖出具体内容,所以仅写下以下参考代码,请自己修改了:

@echo off&setloca ...

想破脑袋想不到 if !n! equ 1 这句在这里有什么用?~
7 发表于 2008-04-27 01:53 ·  中国 辽宁 锦州 联通
中级用户
★★
积分 228
发帖 106
注册 2008-04-26 12:34
18年会员
UID 117003
性别 男
状态 离线
Originally posted by zw19750516 at 2008-4-27 12:34 AM:
&&完全能做到,使用变量替换再改写xxx.ini就可以了,因楼主没有帖出具体内容,所以仅写下以下参考代码,请自己修改了:

@echo off&setloca ...



使用变量替换!

好办法!!!
8 发表于 2008-04-28 22:14 ·  中国 江苏 南京 电信
新手上路
积分 10
发帖 4
注册 2008-04-26 21:34
18年会员
UID 117050
性别 男
状态 离线
zw19750516

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

如果编程的话就很容易,一个函数就可以把字符串中的\斜杠给修改掉,但是用DOS批处理如何修改呢?
9 发表于 2008-04-28 22:27 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
描述再清楚也不管用,最好把源文件贴上来,并且把要修改的地方高亮标记一下。。
10 发表于 2008-04-28 22:28 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
最直接的描述是把你的ini的那段内容贴出来
11 发表于 2008-04-28 22:31 ·  中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
19年会员
UID 68626
性别 男
状态 离线
- - 用搜索替换多方便啊
12 发表于 2008-04-28 23:22 ·  中国 江苏 南京 电信
新手上路
积分 10
发帖 4
注册 2008-04-26 21:34
18年会员
UID 117050
性别 男
状态 离线
源文件很简单,就是一个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\"
13 发表于 2008-04-28 23:27 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
我开始就是想通过变量替换把"\"替换成"/",就是因为楼主没贴出源码,担心会把不要替换的"\"也替换了,现在简单了,如下:
@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
论坛跳转: