前些天,在寒夜孤星老师的帮助下,初步学会了文本修改。最近几天碰到一个新问题:以前处理的几个文本都是修改单一记录的,现在要修改多条记录,用原来的方法一直通不过。具体情况如下:
要修改DOSNET.INF文本:
1、删除该文本内记录项中所有的update\,但保留update\后边的文件名,如:把d1,update\mpsyschk.dll修改成d1,mpsyschk.dll。
2、增加修改其他项:把d1,mp4sdecd.dll改成d1,wmp11\mp4sdecd.dll,把d1,mp4sds32.ax改成d1,wmp11\mp4sds32.ax。
我做的批处理在单独做第1种修改时已经能够实现,但把做第2种修改也增加进来时却屡试不行:只把d1,mp4sdecd.dll这一行删除了,其他的没动。
我的批处理如下:- @echo off&setlocal enabledelayedexpansion
- (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "DOSNET.INF"') do if "%%b"=="" (echo/) else (
- set b=%%b
- if /i not "!b:~3,7!"=="update\" (
- if /i not "!b:~3,12!"=="mp4sdecd.dll" (
- if /i not "!3,11!"=="mp4sds32.ax" (echo %%b) else (
- if /i "!b:~3,7!"=="update\" echo !b:~0,3!!Ye:~8!
- if /i "!b:~3,12!"=="mp4sdecd.dll" echo !b:~0,3!wmp11\!Ye:~4!
- if /i "!b:~3,11!"=="mp4sds32.ax" echo !b:~0,3!wmp11\!Ye:~4!
- )))))>"DOSNET.INF.TMP"
复制代码 请帮忙看看,我这个批处理错在哪了?
附DOSNET.INF文件(ANSI编码,做了RAR压缩) |