标题: [文本处理] 新手报到,求教INI文件如何通过批处理在指定文职增添内容 [打印本页]
作者: liangxinyi 时间: 2019-6-5 12:01 标题: 新手报到,求教INI文件如何通过批处理在指定文职增添内容
本帖最后由 liangxinyi 于 2019-6-5 17:12 编辑
各位老师:
单位有一批客户端运行依赖 chis.ini配置文件
目录:D:\NEW\DEPT
文件内容大致分以下[CHIS] \ [Server] \ [Input_window_control]等节点
现需要在【CHIS】节点下补充下面两行(不是开头)
;单位标识
HospitalFlag_tafy=1”
请问如何在原配置参数不动情况下通过批处理增加上述内容
谢谢
chis.ini 文档内容如下
[Chis]
//本子系统名称
SubSys=dept_chg
subsys_name=医技管理程序
//医技科室编码使用医剂子系统的科室编码(zd_unit_code.pc_flag='1')
dept_code =4010000
;1120100
;2160100
//对应药房编码
group_no=204001
//大输液药房
yp_dsy =201001
//跨科确认时,可以确认的科室列表
confirm_other_dept_list =
[Server]
AppServer=10.10.10.101
172.30.0.22
LoginServer=10.10.10.101
172.30.0.22
[Input_window_control]
code_TabStop=1
edtName_TabStop=1
age_TabStop=0
sex_TabStop=0
ChargeType_TabStop=0
作者: zaqmlp 时间: 2019-6-5 12:38
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- set "inifile=D:\NEW\DEPT\chis.ini"
- if not exist "%inifile%" (echo;"%inifile%" not found&pause&exit)
- (for /f "tokens=1* delims=:" %%a in ('type "%inifile%"^|findstr /n .*') do (
- if /i "%%b" equ "[Chis]" (
- echo,[Chis]
- echo,;单位标识
- echo,HospitalFlag_tafy=1
- ) else echo;%%b
- ))>"#.tmp"
- move /y "#.tmp" "%inifile%"
- echo;%info%
- pause
复制代码
作者: liangxinyi 时间: 2019-6-5 14:19
本帖最后由 liangxinyi 于 2019-6-5 14:26 编辑
回复 2# zaqmlp
人人为我,我为人人o(* ̄︶ ̄*)o
测试通过了但插入位置不对。
求教如果我指定必须插入;[update]前,或者节点【server】前,怎么弄?
作者: zaqmlp 时间: 2019-6-5 15:39
回复 3# liangxinyi
没赞助没动力呀
作者: cfwyy77_bat 时间: 2019-6-5 15:40
这种还是sed省事。- sed -i '/\[Chis\]/a\单位标识\nHospitalFlag_tafy=1”' chis.ini
复制代码
-i 参数会直接在原文件更改,注意备份原文件。
windows下运行sed的方法建议自行了解。
作者: Batcher 时间: 2019-6-5 21:20
指定必须插入[server]前.bat- @echo off
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- set "inifile=D:\NEW\DEPT\chis.ini"
- for /f "tokens=1* delims=:" %%a in ('type "%inifile%" ^| findstr /n .*') do (
- if /i "%%b" equ "[Server]" (
- set "Position=%%a"
- set /a Previous=Position-1
- goto :Insert
- )
- )
- goto :end
-
- :Insert
- (for /f "tokens=1* delims=:" %%a in ('type "%inifile%" ^| findstr /n .*') do (
- if "%%a" equ "!Previous!" (
- echo ;单位标识
- echo HospitalFlag_tafy=1
- )
- echo,%%b
- ))>"%inifile%.txt"
- move /y "%inifile%.txt" "%inifile%"
-
- :end
- pause
复制代码
作者: liangxinyi 时间: 2019-6-6 10:38
回复 6# Batcher
感谢版主支持,自己也学习了一下,目前弄懂了,谢谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |