Board logo

标题: 有点难度的 问题哦!!!!查找替换 [打印本页]

作者: hx001     时间: 2008-2-16 00:21    标题: 有点难度的 问题哦!!!!查找替换

详细解释:
文本(1)内容如下

[000CF1C702DC]       “MAC地址”
Enable=1
WksName=WKS001
IpAddr=192.168.1.101
Netmask=255.255.255.0
BootCard=192.168.1.199
BootDisk=SERVICE*0
RecovTime=0
GateWay=
BootServer=
RemoteBoot=1          “需要修改的地方”

[000CF1C702DE]
Enable=1
WksName=WKS002
IpAddr=192.168.1.102
Netmask=255.255.255.0
BootCard=192.168.1.199
BootDisk=SERVICE*0
RecovTime=0
GateWay=
BootServer=
RemoteBoot=1

[000CF1C702DF]
Enable=1
WksName=WKS003
IpAddr=192.168.1.103
Netmask=255.255.255.0
BootCard=192.168.1.199
BootDisk=SERVICE*0
RecovTime=0
GateWay=
BootServer=
RemoteBoot=1

文本(2)内容如下

---------- IPCONFIG.TXT
        Physical Address. . . . . . . . . : 00-0C-F1-C7-02-DC

说明:文本1的每一段 代表一个计算机 是有大括号内的MAC地址来区分的
文本2里面只包含 MAC地址
根据文本2的MAC地址 找到对应的 文本1的对应的段  并且把对应段的 最后一行
RemoteBoot=1 修改成 RemoteBoot=0 其他段的数据不受影响
修改完 保存 文本1

如果不存在对应的MAC地址,则CALL 另一BAT

希望达人  给点解!
我是DOS初学者

[ Last edited by hx001 on 2008-2-16 at 12:22 PM ]
作者: terse     时间: 2008-2-16 15:14
@echo off&setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%i in (2.txt) do set scr=%%i
set scr=%scr:-=%
set scr=%scr: =%
for /f "tokens=*" %%i in (1.txt) do (
set var=%%i
if "!var:~0,1!"=="[" set n=
if "%%i"=="[%scr%]" set n=1&&set m=1
if !n! EQU 1 if "!var:~0,11!"=="RemoteBoot=" set var=RemoteBoot=0
>>3.txt echo.!var!
)
if "%m%" == "" (
echo 不存在对应的MAC地址
DEL 3.txt
pause
GOTO:EOF
)
move /y "3.txt" "1.txt" 2>NUL
pause

[ Last edited by terse on 2008-2-16 at 03:31 PM ]