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

[文本处理] 批处理如何修改文本中的指定值且保留空行空格?

我有一个文本文档Wopti.123,内容如下

[SephirothUI.Game_Login]
ServerHost=110.4.85.47
ServerPort=2286
LobbyURL=Gray_SEL?Game=SephirothUI.Game_Lobby
Company=
Launching=Cat_Y.C

[SephirothUI.Game_Lobby]
LoginURL=Opening?Game=SephirothUI.Game_Login

[SephirothUI.SephirothGame]
ServerGroup=
ServerIndex=
ServerSetInfo=110.4.85.170:2286|110.4.85.46:2286|110.4.85.172:2286|110.4.85.173:2286|110.4.85.47:2286|110.4.85.52:2286

[WindowPositions]
CrashBox=(X=239,Y=228,XL=545,YL=281)


现在我需要用批处理修改其中的某个值
比如将
ServerHost=后的IP换成192.168.1.2,
Launching=修改成KKM2,其他原样输出
最后输出为sep.ini文件


我看了一些介绍,自己写了一个,如下

@echo off 2>sep.ini
(for /f "tokens=1* delims==" %%i in (Wopti.123) do if "%%j"=="" (echo.%%i) else (set "k=%%j"
setlocal enabledelayedexpansion
if /i "%%i"=="Launching" set "k=Wopti"
if /i "%%i"=="ServerHost" set "k=12.12.13"&set a==
echo.%%i=!k!
Endlocal))>>sep.ini


但是生成的sep.ini文件中所有的空行分段都消失了...

我不知道怎么修改了,请帮忙修改下,或者能实现同样的功能。
谢谢了。



[ 本帖最后由 wopti 于 2010-7-30 15:52 编辑 ]

批处理解决方法 "delims:=" 可以保留空行把



我先占个位
没人回的话我在发布 完美解决问题方法

TOP

@echo off 2>sep.ini
(for /f "tokens=1* delims:= %%i in (Wopti.123) do if "%%j"=="" (echo.%%i) else (set "k=%%j"
setlocal enabledelayedexpansion
if /i "%%i"=="Launching" set "k=Wopti"
if /i "%%i"=="ServerHost" set "k=12.12.13"&set a==
echo.%%i=!k!
Endlocal))>>sep.ini

这样么...
这样生成出来变成一个空文件了...

TOP

或者有没有办法直接修改Wopti.123文件...无需导出...?

TOP

use the 3rd tool ==> change.exe  as attached file

replace01.bat
  1. copy Wopti.123 Wopti.123.ori
  2. change Wopti.123  /from ServerHost=* /to ServrHost=192.168.1.2
  3. change Wopti.123  /from Launching=* /to Launching=KKM2
复制代码

TOP

返回列表