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

[文本处理] 新手报到,求教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
11111

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. set "inifile=D:\NEW\DEPT\chis.ini"
  7. if not exist "%inifile%" (echo;"%inifile%" not found&pause&exit)
  8. (for /f "tokens=1* delims=:" %%a in ('type "%inifile%"^|findstr /n .*') do (
  9.     if /i "%%b" equ "[Chis]" (
  10.         echo,[Chis]
  11.         echo,;单位标识
  12.         echo,HospitalFlag_tafy=1
  13.     ) else echo;%%b
  14. ))>"#.tmp"
  15. move /y "#.tmp" "%inifile%"
  16. echo;%info%
  17. pause
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 liangxinyi 于 2019-6-5 14:26 编辑

回复 2# zaqmlp


人人为我,我为人人o(* ̄︶ ̄*)o
测试通过了但插入位置不对。
求教如果我指定必须插入;[update]前,或者节点【server】前,怎么弄?
11111

TOP

回复 3# liangxinyi

没赞助没动力呀
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

这种还是sed省事。
  1. sed -i '/\[Chis\]/a\单位标识\nHospitalFlag_tafy=1”' chis.ini
复制代码
-i 参数会直接在原文件更改,注意备份原文件。
windows下运行sed的方法建议自行了解。

TOP

指定必须插入[server]前.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set "inifile=D:\NEW\DEPT\chis.ini"
  5. for /f "tokens=1* delims=:" %%a in ('type "%inifile%" ^| findstr /n .*') do (
  6.     if /i "%%b" equ "[Server]" (
  7.         set "Position=%%a"
  8.         set /a Previous=Position-1
  9.         goto :Insert
  10.     )
  11. )
  12. goto :end
  13. :Insert
  14. (for /f "tokens=1* delims=:" %%a in ('type "%inifile%" ^| findstr /n .*') do (
  15.     if "%%a" equ "!Previous!" (
  16.         echo ;单位标识
  17.         echo HospitalFlag_tafy=1
  18.     )
  19.     echo,%%b
  20. ))>"%inifile%.txt"
  21. move /y "%inifile%.txt" "%inifile%"
  22. :end
  23. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher
感谢版主支持,自己也学习了一下,目前弄懂了,谢谢
11111

TOP

返回列表