Board logo

标题: [文本处理] 批处理已经实现ini文件的内容替换,但是注释不会跟过来 [打印本页]

作者: Speed乄Jay    时间: 2017-9-7 16:33     标题: 批处理已经实现ini文件的内容替换,但是注释不会跟过来

  1. setlocal enabledelayedexpansion
  2. set a=C:\HollyCRM\HollyV8\fujian\plugins\Softphone.ini
  3. attrib -s -h %a%
  4. for /f "delims=" %%a in (%a%) do (
  5.    set str=%%a
  6.    set str=!str:2016=2015!&echo !str!>>1.ini
  7. )
  8. move 1.ini C:\HollyCRM\HollyV8\fujian\plugins\Softphone.ini
  9. pause
复制代码
代码如上,这样注释不会跟过来,如果把"delims="改成"delims=;"  注释的内容会跟过来,但是注释的【;】符号就没掉了,失去了注释的意义,请问怎么解决。
作者: 老刘1号    时间: 2017-9-7 20:01

"tokens=*"
作者: Speed乄Jay    时间: 2017-9-7 20:12

回复 2# 老刘1号
  1. setlocal enabledelayedexpansion
  2. set a=C:\HollyCRM\HollyV8\fujian\plugins\Softphone.ini
  3. attrib -s -h %a%
  4. for /f "tokens=* eol=" %%a in (%a%) do (
  5.    set str=%%a
  6.    set str=!str:2016=2015!&echo !str!>>1.ini
  7. )
  8. move 1.ini C:\HollyCRM\HollyV8\fujian\plugins\Softphone.ini
  9. pause
复制代码
我把delims=换成"tokens=* eol= 这两个参数之后,内容包括注释都跟过来了,唯一的一点遗憾就是,用了eol这个参数之后所有的空行都没了,不过已经实现效果 ,有没有更完美的方案把空行也保留住,就是只把2016改成2015,其他内容注释包括格式都一模一样的搬过来。。
作者: Batcher    时间: 2017-9-7 20:32

试试 tokens=1,* delims=: 加上 findstr /n
参考:http://bbs.bathome.net/thread-11193-1-1.html
作者: Speed乄Jay    时间: 2017-9-7 21:46

回复 4# Batcher


    多谢大大,我先看看资料,再试试看。
作者: Speed乄Jay    时间: 2017-9-7 22:01

回复 4# Batcher


    大大,我还有另外一个思路的疑问 ,.ini文件里只有两行update_time=2016-06-24 17:14:35 ,并且这两条内容是完全一样的,我如何通过定位update_time的方式来修改后面任意一位的日期浮动,两条同时修改。我想了好久,脑子快炸了。我目前这种写法只是替换.ini里所有2016数值。并不是最佳方案 。
作者: taofan712    时间: 2017-9-7 22:14

回复 6# Speed乄Jay


    你的代码for那一段,加if判断,if "行的前xx个字符"=="update_time" set xxx
作者: CrLf    时间: 2017-9-8 16:26

挺尸
  1. mshta http://bathome.net/s/hta/index.html "var file=""C:\HollyCRM\HollyV8\fujian\plugins\Softphone.ini"";save(type(file).replace(/2016/g,'2015'),file)"
复制代码

作者: 523066680    时间: 2017-9-8 16:48

回复 8# CrLf


    Long time no see
作者: Speed乄Jay    时间: 2017-9-10 08:27

回复 8# CrLf


    看的不是太明白 ,但好像很厉害的样子
作者: 老刘1号    时间: 2017-9-10 09:02

回复 8# CrLf


    失踪人口回归




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2