[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样修改配置文件?

请教一个关于批处理修改配置文件的编写方法~!
问题一:
如果用批处理器把系统时间(格式为20080724)写入到配置文件1.ini中的第二十行第10个汉字以后。
问题二:
如果用批处理器把配置文件1.ini第七行第七个字母后的内容删除。
谢谢~!

第二十行第10个汉字以后
首先:是第10 个汉字?还是第10个字符,这个一定要说清楚。
其次:空行算一行吗?
技术问题请到论坛发帖求助!

TOP

首先指出直接写入是不可能的,但可以进行改写:
问题一:
  1. @echo off&setlocal enabledelayedexpansion
  2. set t=%date:~,-4%&set t=!t:-=!
  3. for /f "delims=" %%i in ('type 1.ini') do (
  4.      set /a n+=1
  5.      if !n! equ 1 (
  6.         echo %%i>1.ini
  7.          ) else (
  8.          if !n! equ 20 (
  9.              set "str=%%i"&set m=0&call :lp
  10.              echo %str%>>1.ini
  11.              ) else (
  12.             echo %%i>>1.ini
  13. )))
  14. echo 搞定&pause>nul&goto :eof
  15. :lp
  16. set "a=%str:~,1%"&set "var=%var%!a!"
  17. if "%a%" gtr "z" set / a m+=1
  18. if %m% equ 10 set "str=%var%%t%%str%"&goto :eof
  19. set "str=%str:~1%"&goto lp
复制代码
问题二:
只要把以上代码稍做修改可以了
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('type 1.ini') do (
  3.      set /a n+=1
  4.      if !n! equ 1 (
  5.         echo %%i>1.ini
  6.          ) else (
  7.          if !n! equ 7 (
  8.              set "str=%%i"&set m=0&call :lp
  9.              echo %var%>>1.ini
  10.              ) else (
  11.             echo %%i>>1.ini
  12. )))
  13. echo 搞定&pause>nul&goto :eof
  14. :lp
  15. set "a=%str:~,1%"&set "var=%var%!a!"
  16. if "%a%" leq "z" set / a m+=1
  17. if %m% equ 7 goto :eof
  18. set "str=%str:~1%"&goto lp
复制代码

[ 本帖最后由 batman 于 2008-7-24 16:15 编辑 ]
***共同提高***

TOP

原帖由 随风 于 2008-7-24 15:36 发表
其次:空行算一行吗?

确实是要考虑空行的问题。
***共同提高***

TOP

ini文件里绝对少不了以;打头的行,最好指定eol=
心绪平和,眼藏静谧。

TOP

返回列表