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

[文本处理] 批处理如何查找指定ini文件里的特定内容并修改/替换相关参数值?

本帖最后由 pcl_test 于 2016-6-15 21:29 编辑

比如,我有一个A.INI文件,用批处理查找
# basedir1 = .....
# basedir2 = .....
# basedir3 = .....
# basedir4 = .....
分别替换为
basedir1=C:\WEB\
basedir2=D:\WEB\
basedir3=E:\WEB\
basedir4=F:\WEB\
求各位大神帮忙详细写下吧!

  1. sed "s/# basedir1 =.*/basedir1=C:\\WEB\\/; s/# basedir2 =.*/basedir2=D:\\WEB\\/; s/# basedir3 =.*/basedir3=E:\\WEB\\/; s/# basedir4 =.*/basedir4=F:\\WEB\\/" a.ini > b.ini
复制代码

TOP

能不能不用第三方,直接用批处理写出来呢?请大神给出个完整代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%i in ('type "a.ini"') do (
  4.     set "str1=%%i"
  5.     if "!str1:# basedir1 =!" neq "%%i" (
  6.         echo basedir1=C:\WEB\
  7.     ) else if "!str1:# basedir2 =!" neq "%%i" (
  8.         echo basedir2=D:\WEB\
  9.     ) else if "!str1:# basedir3 =!" neq "%%i" (
  10.         echo basedir3=E:\WEB\
  11.     ) else if "!str1:# basedir4 =!" neq "%%i" (
  12.         echo basedir4=F:\WEB\
  13.     ) else (
  14.         echo,%%i
  15.     )
  16. ))>b.ini
复制代码

TOP

呵呵,太感谢了,完美解决了问题

TOP

回复 4# DAIC


    先生,您好。如果要保留成原来的文件名a.ini怎么办?

TOP

回复 6# houxiren


4楼代码末尾加一行:
  1. move /y b.ini a.ini
复制代码
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 7# gawk


    谢谢您。实现了目的。

TOP

本帖最后由 pcl_test 于 2016-6-22 14:21 编辑

回复 7# gawk
gawk先生好。又来请教,谢谢。
http://www.bathome.net/thread-40809-1-1.html

TOP

返回列表