批处理 BAT 替换所有IP字符串文本为指定IP 20
有文本a.txt内容为:<sml:Server1>http://192.168.3.4:8888/test.html</sml:Server1><sml:Server2>...
有文本 a.txt 内容为:
<sml:Server1>http://192.168.3.4:8888/test.html</sml:Server1>
<sml:Server2>http://192.168.3.5:7777/default.html</sml:Server2>
<database>192.168.5.5</database>
我需要用批处理 将所有 sml:Server 的IP地址和端口改为 指定的地址(变量1),如192.168.2.3:8888
把database节点地址改为指定的IP(变量2),如:192.168.8.8
修改后的文本输出至b.txt
b.txt 结果应如下:
<sml:Server1>http://192.168.2.3:8888/test.html</sml:Server1>
<sml:Server2>http://192.168.2.3:8888/default.html</sml:Server2>
<database>192.168.8.8</database> 展开
<sml:Server1>http://192.168.3.4:8888/test.html</sml:Server1>
<sml:Server2>http://192.168.3.5:7777/default.html</sml:Server2>
<database>192.168.5.5</database>
我需要用批处理 将所有 sml:Server 的IP地址和端口改为 指定的地址(变量1),如192.168.2.3:8888
把database节点地址改为指定的IP(变量2),如:192.168.8.8
修改后的文本输出至b.txt
b.txt 结果应如下:
<sml:Server1>http://192.168.2.3:8888/test.html</sml:Server1>
<sml:Server2>http://192.168.2.3:8888/default.html</sml:Server2>
<database>192.168.8.8</database> 展开
1个回答
展开全部
@echo off
setlocal enabledelayedexpansion
(for /f "tokens=*" %%a in (a.txt) do (
set "str=%%a"
if /i "!str:~0,11!"=="<sml:Server" for /f "tokens=1,2* delims=/" %%b in ("!str!") do echo %%b//192.168.2.3:8888/%%d
if /i "!str:~0,10!"=="<database>" for /f "tokens=1,2* delims=><" %%b in ("!str!") do echo ^<%%b^>192.168.8.8^<%%d
))>b.txt
start b.txt
setlocal enabledelayedexpansion
(for /f "tokens=*" %%a in (a.txt) do (
set "str=%%a"
if /i "!str:~0,11!"=="<sml:Server" for /f "tokens=1,2* delims=/" %%b in ("!str!") do echo %%b//192.168.2.3:8888/%%d
if /i "!str:~0,10!"=="<database>" for /f "tokens=1,2* delims=><" %%b in ("!str!") do echo ^<%%b^>192.168.8.8^<%%d
))>b.txt
start b.txt
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询