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

[文本处理] 批处理for逐行读取文本怎么做到不删除空行?

本帖最后由 lamcelot 于 2017-3-2 09:31 编辑

某程序有config.ini文件,想要通过批处理修改里面address=字段后面的服务器ip指向,但是不能去除空行
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set fileName=config.ini
  4. set /p ip=10.0.0.
  5. (for /f "delims=" %%i in ('type "%fileName%"') do (
  6. set "ipAddress=%%i"
  7. if "!ipAddress:address=!" neq "%%i" (
  8. echo address=10.0.0.%ip%
  9. ) else (
  10. echo,%%i
  11. )
  12. ))>%fileName%.temp
  13. move /y %fileName%.temp %fileName%
  14. pause
复制代码
修改程序的ini配置文件里面address=后面的ip地址目前已经可以实现。但是执行后会删除掉文件里面所有的空行。。。求大神指教

下面贴出关键部分的ini内容

   ;补打POS票据
gv_pos_bankinfo_bl=1



[server]
AppServer=10.0.0.34
10.0.0.34
login_appserver=10.0.0.34

[yb]
work_dir=C:\mzsf

code=02110003
dsn_name=ybdb

dsn_user=sa
dsm_passwd=123

dsn_passwd=123



还有一个问题,if默认是会区分大小写的,但是我的代码竟然会把login_appserver这行也给替换了,LZ现在很头疼正在考虑正则表达式或者findstr

回复 2# ygqiang 哥哥能不能在我的代码上改改啊    你这个太复杂了我不怎么看的懂

TOP

回复 3# 回家路上

重点还是findstr /n吧?

TOP

回复 7# ygqiang

格式固定是         address=...    后面的ip地址是10.0.0.? 的形式,但最后一位是不确定的,通过这个batch输入对这个ip地址的末位进行修改

TOP

回复 9# ygqiang

我自己写的代码可以实现功能   但是会删掉空行

TOP

本帖最后由 pcl_test 于 2017-3-2 09:39 编辑

回复 16# taofan712
顶楼已更新给出

TOP

返回列表