楼 主
如何把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 性别 男
状态 离线
第 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 性别 男
状态 离线
第 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
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正