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

[文本处理] 如何将文本文档里的固定行IP地址替换

[General]
Module=20013   ;本机模块号,0~65535,与IP地址无关,cd:4088
    ;0~128为交换机使用
    ;129~133为系统服务器(SCP,SMP,JF等)使用
    ;134~65535为其它计算机(应用服务器,客户机)使用
    ;服务器与客户机的区别在于服务器具有侦听端口,
    ;接受其他节点的连接请求.
PostOffice=1   
    ;局号,1~254
AreaCode=28
    ;区号,10~999
IPAddress=133.47.80.13
    ;本机IP地址,可不受网段的限制,只要两节点间可以
    ING通,即可实现基于WINNTTCP的TCP/IP通讯
IsAppServer=0           
    ;是否为服务器,1:是;0:否(如果Module在129到
    ;133之间,则本机一定是服务器,Module>133也可为
    ;服务器,接受其他节点的连接请求)
NTServer=129
JFServer=129
Ommmp=2                  
    ;SIU的模块号
IsRemoteNode=0   
    ;w32tsapi.dll使用
CTINode=140
    ;w32tsapi.dll使用
ModuleCount=2           
    ;在本机为客户端时(Module>133)0~32 ,要连接的
    ;服务器的个数
[Module1]
Module=140               
    ;要连接的服务器进程的模块号
PostOffice=1              
    ;局号,1~254
AreaCode=28
    ;区号,10~999
IPAddress=133.37.77.23
    ;要连接的服务器的IP地址
proxynum =16

[Module2]  ;ZXCCSS1
Module=243
;要连接的服务器进程的模块号
PostOffice=1            
;局号,1~254
AreaCode=28
;区号,10~999
IPAddress=133.37.77.143
;要连接的服务器的IP地址
ProxyNum=10
;主用服务端的起始端口,默认值为5000
FirstPort=5000
[Debug]
multicon=1   

以上就是文本文档的内容,如果本机IP地址为133.50.80.123 则替换Module=20013  为Module=20123   
                                                   替换IPAddress=133.47.80.13  为IPAddress=133.50.80.123
只替换这2行,其他的不替换,请教各位朋友该怎么写批处理呢?我在1楼写出我的批处理,只是测试不成功,希望各位朋友指正。

@echo off&setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%i in ('ipconfig /all^|findstr /c:"IP Address"') do set "ip=%%i"
set "ip=%ip:~1%"
set "last=%ip%"
for /f "tokens=4 delims=. " %%a in (" %last% ") do set "a=%%a"
for /f "delims=" %%i in ('type c.inf') do (
     if not defined flag   (
           echo %%i>c.inf&set "flag=a"
     ) else (
           set "str=%%i"
           if /i "!str:~,6!" equ "Module" (
              echo !str:~,-3!%a%>>c.inf
            )      
           if /i "!str:~,9!" equ "IPAddress" (
                  echo !str:~,10!%ip%>>c.inf
           ) else (
                  echo.%%i>>c.inf
           )
      )
)

TOP

整个文本只有两处需要修改,大部分直接用生成文件的方法比较快
cls&@echo off
for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr /c:"IP Address"') do set IP=%%i
set IP=%IP: =%
echo IP:%IP%
for /f "tokens=4 delims=." %%i in ("%IP%") do set str=%%i
set/a modul=20000+str
>a.txt
echo [General]
>>a.txt
echo IPAddress=%IP%
>>a.txt
echo     ;本机IP地址,可不受网段的限制,只要两节点间可以
>>a.txt
echo     ING通,即可实现基于WINNTTCP的TCP/IP通讯
>>a.txt
echo Module=%modul%   ;本机模块号,0~65535,与IP地址无关,cd:4088
more +14 %~dpnx0>>a.txt
echo 生成完毕!
goto:eof
    ;0~128为交换机使用
    ;129~133为系统服务器(SCP,SMP,JF等)使用
    ;134~65535为其它计算机(应用服务器,客户机)使用
    ;服务器与客户机的区别在于服务器具有侦听端口,
    ;接受其他节点的连接请求.
PostOffice=1   
    ;局号,1~254
AreaCode=28
    ;区号,10~999
IsAppServer=0           
    ;是否为服务器,1:是;0:否(如果Module在129到
    ;133之间,则本机一定是服务器,Module>133也可为
    ;服务器,接受其他节点的连接请求)
NTServer=129
JFServer=129
Ommmp=2                  
    ;SIU的模块号
IsRemoteNode=0   
    ;w32tsapi.dll使用
CTINode=140
    ;w32tsapi.dll使用
ModuleCount=2           
    ;在本机为客户端时(Module>133)0~32 ,要连接的
    ;服务器的个数
[Module1]
Module=140               
    ;要连接的服务器进程的模块号
PostOffice=1              
    ;局号,1~254
AreaCode=28
    ;区号,10~999
IPAddress=133.37.77.23
    ;要连接的服务器的IP地址
proxynum =16

[Module2]  ;ZXCCSS1
Module=243
;要连接的服务器进程的模块号
PostOffice=1            
;局号,1~254
AreaCode=28
;区号,10~999
IPAddress=133.37.77.143
;要连接的服务器的IP地址
ProxyNum=10
;主用服务端的起始端口,默认值为5000
FirstPort=5000
[Debug]
multicon=1  
高手=发现问题^分析问题^解决问题

TOP

好    玩  好    玩

TOP

返回列表