标题: 如何显示未被所有INF文件引用的文件名
[打印本页]
作者: suntb
时间: 2008-3-14 11:08
标题: 如何显示未被所有INF文件引用的文件名
目的:取得当前目录下所有文件名(不包括.inf文件及子目录名),在所有.inf中查找文件名引用情况,如果在所有inf文件中都没有被引用则显示此文件名
现在遇到问题,如何判断:文件名在所有inf文件中都没有被引用?
原本想试试用if defined判断,不过对其用法不是很熟悉,没有成功
麻烦大家帮忙修改下代码
@echo off
for /f %%a in ('dir /a-d /b') do (
if /i not "%%~xa"==".inf" (
for /f %%b in ('findstr /i /m "%%~na" "*.inf"') do (
if defined %%b (echo %%b) else (echo %%a)
)
)
)
pause
Last edited by suntb on 2008-3-14 at 11:15 AM ]
作者: HAT
时间: 2008-3-14 11:49
楼主有没有考虑过自己的外层for循环遇到带空格的文件名是否会出问题?
作者: suntb
时间: 2008-3-14 12:14
Originally posted by HAT at 2008-3-14 11:49:
楼主有没有考虑过自己的外层for循环遇到带空格的文件名是否会出问题?
当前目录下所有文件名均不带空格
作者: suntb
时间: 2008-3-14 12:46
麻烦各位兄弟帮忙想下办法
如何判断:文件名在所有inf文件中都没有被引用?
作者: suntb
时间: 2008-3-14 22:57
顶上求助下
作者: fastslz
时间: 2008-3-15 00:06
目录里没有包含空格,这个代码最简便
@echo off
for /f "delims=*" %%i in (n.inf) do call set xxx=%%xxx%% %%i
dir /b/a-d |findstr /b /v "%xxx% %~0 n.inf"
pause
未测试
作者: suntb
时间: 2008-3-15 22:55
Originally posted by fastslz at 2008-3-15 00:06:
目录里没有包含空格,这个代码最简便
@echo off
for /f "delims=*" %%i in (n.inf) do call set xxx=%%xxx%% %%i
dir /b/a-d |findstr /b /v "%xxx% %~0 n.inf"
...
无法成功获取未被当前目录下所有INF文件调用的文件名
作者: fastslz
时间: 2008-3-16 00:22
不好意思,不知道是我中文差劲,还是你说不清楚
1:列出inf中没纪录的文件?
2:列出inf中纪录的文件?
自己看下你自己1楼和7楼的话
@echo off
for /f "delims=*" %%i in (n.inf) do call set xxx=%%xxx%% %%i
dir /b/a-d |findstr /b "%xxx% %~0 n.inf"
pause
本以为1楼的代码是你写的,所以.....
要问题1见6楼代码
要问题2见8楼代码(只是少了个/v)
自问自答完毕!
作者: suntb
时间: 2008-3-16 11:37
Originally posted by fastslz at 2008-3-16 00:22:
不好意思,不知道是我中文差劲,还是你说不清楚
1:列出inf中没纪录的文件?
2:列出inf中纪录的文件?
自己看下你 ...
感谢fastslz兄的解答,我看了下自个的回复,好象意思没什么大的出入啊
标题:如何显示未被所有INF文件引用的文件名
1楼:如果在所有inf文件中
都没有被引用则显示此文件名
7楼:无法成功获取
未被当前目录下所有INF文件调用的文件名
作者: suntb
时间: 2008-3-16 12:09
Originally posted by fastslz at 2008-3-16 00:22:
本以为1楼的代码是你写的,所以.....
要问题1见6楼代码
要问题2见8楼代码(只是少了个/v)
自问自答完毕!
再回fastslz兄 一楼代码是我自个写的,已经测试不顶用
现在看了下你给的代码,有个疑问:for中的循环范围n.inf有什么用
我自己的思路步骤是:
1、DIR列出当前文件夹下(不含子文件夹)所有文件名
2、如果文件扩展名是.inf格式则不作下一步处理
3、如果文件扩展名不是.inf格式,则查找当前变量赋值的文件名在当前文件夹中的所有.inf文件里的调用情况(只要有出现该文件名即可视为有调用)
4、如果在所有.inf文件中都未找到该文件名(不论在什么位置,可以是行首、行中或行尾),则显示文件名
5、如果在其中某个.inf文件中查询到有该文件名存在,则不显示
作者: fastslz
时间: 2008-3-16 13:59
给你测试代码
test.bat
@for /l %%i in (10000000,1,10000100) do @echo.>%%i.txt
@for /l %%i in (10000000,1,10000060) do @echo %%i.txt>>n.inf
rem 上面生成测试文件
@echo off
for /f "delims=*" %%i in (n.inf) do call set xxx=%%xxx%% %%i
dir /b/a-d |findstr /b "%xxx%"|findstr /b /v "%~n0 n.inf"
pause
作者: yangzhiyi
时间: 2008-3-16 18:53
Originally posted by fastslz at 2008-3-16 13:59:
@echo off
for /f "delims=*" %%i in (n.inf) do call set xxx=%%xxx%% %%i
dir /b/a-d |findstr /b "%xxx%"|findstr /b /v "%~n0 n.inf"
pause
好强的代码