标题: [文本处理] 批处理怎样修改配置文件? [打印本页]
作者: heyoug 时间: 2008-7-24 15:12 标题: 批处理怎样修改配置文件?
请教一个关于批处理修改配置文件的编写方法~!
问题一:
如果用批处理器把系统时间(格式为20080724)写入到配置文件1.ini中的第二十行第10个汉字以后。
问题二:
如果用批处理器把配置文件1.ini第七行第七个字母后的内容删除。
谢谢~!
作者: 随风 时间: 2008-7-24 15:36
第二十行第10个汉字以后
首先:是第10 个汉字?还是第10个字符,这个一定要说清楚。
其次:空行算一行吗?
作者: batman 时间: 2008-7-24 16:07
首先指出直接写入是不可能的,但可以进行改写:
问题一:- @echo off&setlocal enabledelayedexpansion
- set t=%date:~,-4%&set t=!t:-=!
- for /f "delims=" %%i in ('type 1.ini') do (
- set /a n+=1
- if !n! equ 1 (
- echo %%i>1.ini
- ) else (
- if !n! equ 20 (
- set "str=%%i"&set m=0&call :lp
- echo %str%>>1.ini
- ) else (
- echo %%i>>1.ini
- )))
- echo 搞定&pause>nul&goto :eof
- :lp
- set "a=%str:~,1%"&set "var=%var%!a!"
- if "%a%" gtr "z" set / a m+=1
- if %m% equ 10 set "str=%var%%t%%str%"&goto :eof
- set "str=%str:~1%"&goto lp
复制代码
问题二:
只要把以上代码稍做修改可以了- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('type 1.ini') do (
- set /a n+=1
- if !n! equ 1 (
- echo %%i>1.ini
- ) else (
- if !n! equ 7 (
- set "str=%%i"&set m=0&call :lp
- echo %var%>>1.ini
- ) else (
- echo %%i>>1.ini
- )))
- echo 搞定&pause>nul&goto :eof
- :lp
- set "a=%str:~,1%"&set "var=%var%!a!"
- if "%a%" leq "z" set / a m+=1
- if %m% equ 7 goto :eof
- set "str=%str:~1%"&goto lp
复制代码
[ 本帖最后由 batman 于 2008-7-24 16:15 编辑 ]
作者: batman 时间: 2008-7-24 16:12
原帖由 随风 于 2008-7-24 15:36 发表
其次:空行算一行吗?
确实是要考虑空行的问题。
作者: pusofalse 时间: 2008-7-24 20:37
ini文件里绝对少不了以;打头的行,最好指定eol=
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |