找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33323|回复: 8

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

[复制链接]
发表于 2015-11-5 22:02:49 | 显示全部楼层 |阅读模式
本帖最后由 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\
求各位大神帮忙详细写下吧!
发表于 2015-11-5 22:10:05 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2015-11-5 22:24:01 | 显示全部楼层
能不能不用第三方,直接用批处理写出来呢?请大神给出个完整代码
发表于 2015-11-5 22:33:04 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2015-11-5 23:09:23 | 显示全部楼层
呵呵,太感谢了,完美解决了问题
发表于 2016-6-15 17:41:03 | 显示全部楼层
回复 4# DAIC


    先生,您好。如果要保留成原来的文件名a.ini怎么办?
发表于 2016-6-15 20:15:59 | 显示全部楼层
回复 6# houxiren


4楼代码末尾加一行:
  1. move /y b.ini a.ini
复制代码
发表于 2016-6-16 22:09:56 | 显示全部楼层
回复 7# gawk


    谢谢您。实现了目的。
发表于 2016-6-22 12:49:40 | 显示全部楼层
本帖最后由 pcl_test 于 2016-6-22 14:21 编辑

回复 7# gawk
gawk先生好。又来请教,谢谢。
http://www.bathome.net/thread-40809-1-1.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 19:04 , Processed in 0.019613 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表