标题: [文本处理] 批处理如何修改ini文件指定键值对? [打印本页]
作者: baje4391 时间: 2013-11-22 15:34 标题: 批处理如何修改ini文件指定键值对?
本帖最后由 pcl_test 于 2017-1-6 04:45 编辑
我有一组数值,d.ini文件。内容为
[Database]
DBMS=O84 ORACLE 8.0.4
Database=
UserId=
DatabasePassword=
ServerName=kthis
LogId=HMISW_A2
Lock=
DbParm="MixedCase=0 ,CnnPool='Yes'"
[EGYKGL]
CKDM = 1
[EGYFGL]
KFDM=A2
#ZYKFDM=03
CKBH=1
ZYKFDM=03
上面红色的区域=后面的数值改变。当然。这2个数值并不是固定的。但是我想改变为我需要的数值。而不改变整个INI内容的结构。请哪位大大帮帮忙。。
作者: 1270697389 时间: 2013-11-22 16:08
本帖最后由 1270697389 于 2013-11-22 16:09 编辑
@echo off&setlocal enabledelayedexpansion
set /p i=输入文件名:
set /p s=请输入被替换的值:
set /p r=输入替换的值:
(for /f "delims=" %%a in (%i%) do (
set/a n+=1
set "str=%%a"
if "!str:%s%=%%r!"=="%%a" (
echo,%%a
) else (
echo,!str:%s%=%r%!
set/a m=n
)
))>$
move $ %i%
作者: laolong 时间: 2013-11-22 19:21
其实专门有一个小工具就是针对 ini 文件的,功能强大、方便: inifile.exe
作者: apang 时间: 2013-11-22 20:10
- @echo off
- for /f "tokens=*" %%i in ('findstr /n .* D.INI') do (
- for /f "tokens=1*delims==" %%a in ("%%i$") do (
- set "a=%%a" & set "b=%%b"
- setlocal enabledelayedexpansion
- set "a=!a:*:=!"
- if "!b!" neq "" (
- if /i "!a!"=="LogId" (
- echo,!a!=值1
- ) else (
- if /i "!a!"=="KFDM" (
- echo,!a!=值2
- ) else echo,!a!=!b:~,-1!
- )
- ) else echo,!a:~,-1!
- endlocal
- )
- )
- pause
复制代码
作者: baje4391 时间: 2013-11-26 08:27
多谢各位大大~
作者: apang 时间: 2013-11-26 09:09
4#搞复杂了- @echo off
- for /f "delims=" %%a in ('findstr /n .* a.txt') do (
- set "str=%%a"
- setlocal enabledelayedexpansion
- set "str=!str:*:=!"
- if /i "!str:~,6!"=="LogId=" (
- echo,LogId=1
- ) else (
- if /i "!str:~,5!"=="KFDM=" (
- echo,KFDM=2
- ) else echo,!str!
- )
- endlocal
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |