Board logo

标题: 求助从众多INF文件中删除包含有指定字符串的行? [打印本页]

作者: hdj20030403     时间: 2007-1-13 05:30    标题: 求助从众多INF文件中删除包含有指定字符串的行?

在做驱动精简时碰到一个问题?当从驱动包加精简某个文件时,也要从INF文件中删除该文件的信息.
比如:在d:\A目录下包含有诸多INF文件(有子目录的),要在这些INF文件中删除含有"SoundMan.exe"的行.

如果只处理单个INF文件,我用下面的方法.
findstr /i /v SoundMan.exe d:\A\Alcwdm.inf >d:\temp\tem.Alcwdm.inf
move /y d:\temp\tem.Alcwdm.inf d:\A\Alcwdm.inf

若用findstr /s /i /v SoundMan.exe d:\A\*.inf 要如何才能保存结果啊!
或者用其它的方法可以实现.
作者: lxmxn     时间: 2007-1-13 15:47

@echo off
    for /f "delims=" %%a in ('dir /s/b/a-d D:\A\*.inf') do (
        findstr /i /v "SoundMan.exe" "%%a" >>d:\temp\tem.%%~nxa
        move /y d:\temp\tem.%%~nxa d:\A\%%~nxa
    )
pause

作者: hdj20030403     时间: 2007-1-13 22:41
首先非常谢谢帮助解答!
不过这个答案还不完全解决问题,如果有的INF文件是存在于D:\A\B中,那么已经处理过的INF文

件是会放在D:\A目录下,而不是D:\A\B.还有一个问题,就是如何删除包含有指定字符串的INF文件?因为在

这些INF文件中有的是用于64位系统的.比如:要将包含有"%MfgName%=Realtek,NTamd64"这个字符串的INF

文件都删除.
作者: lxmxn     时间: 2007-1-14 22:03

@echo off
set MfgName=
for /f "delims=" %%a in ('findstr /m /s "%MfgName%=Realtek,NTamd64" *.inf') do (
     del "%%a"
     echo "%%a" has been Deleted.
)
pause

作者: hdj20030403     时间: 2007-1-14 22:22
再次感谢!那个子目录问题有没有办法解决啊!
作者: lxmxn     时间: 2007-1-15 12:28

  已经可以解决子文件夹的问题了。

作者: hdj20030403     时间: 2007-1-15 21:09


  Quote:
Originally posted by lxmxn at 2007-1-14 11:28 PM:

  已经可以解决子文件夹的问题了。

要如何解决啊!
作者: lxmxn     时间: 2007-1-16 15:14

  你运行了4楼的代码了没?这个可以处理子文件夹中的文件的。

作者: nipo     时间: 2008-5-10 01:57
以前没搜索到这个贴子。