中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 19:01
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何显示未被所有INF文件引用的文件名
可打印版本  947 / 11
第1楼 suntb 发表于 2008-03-14 11:08
高级用户 发帖 277 积分 581
如何显示未被所有INF文件引用的文件名
目的:取得当前目录下所有文件名(不包括.inf文件及子目录名),在所有.inf中查找文件名引用情况,如果在所有inf文件中都没有被引用则显示此文件名

现在遇到问题,如何判断:文件名在所有inf文件中都没有被引用?
原本想试试用if defined判断,不过对其用法不是很熟悉,没有成功
麻烦大家帮忙修改下代码



[ Last edited by suntb on 2008-3-14 at 11:15 AM ]
第2楼 HAT 发表于 2008-03-14 11:49
版主 发帖 5,017 积分 9,023
楼主有没有考虑过自己的外层for循环遇到带空格的文件名是否会出问题?
第3楼 suntb 发表于 2008-03-14 12:14
高级用户 发帖 277 积分 581
Originally posted by HAT at 2008-3-14 11:49:
楼主有没有考虑过自己的外层for循环遇到带空格的文件名是否会出问题?


当前目录下所有文件名均不带空格
第4楼 suntb 发表于 2008-03-14 12:46
高级用户 发帖 277 积分 581
麻烦各位兄弟帮忙想下办法

如何判断:文件名在所有inf文件中都没有被引用?
第5楼 suntb 发表于 2008-03-14 22:57
高级用户 发帖 277 积分 581
顶上求助下
第6楼 fastslz 发表于 2008-03-15 00:06
铂金会员 发帖 2,315 积分 5,493 来自 上海
目录里没有包含空格,这个代码最简便

未测试
第7楼 suntb 发表于 2008-03-15 22:55
高级用户 发帖 277 积分 581
Originally posted by fastslz at 2008-3-15 00:06:
目录里没有包含空格,这个代码最简便
第8楼 fastslz 发表于 2008-03-16 00:22
铂金会员 发帖 2,315 积分 5,493 来自 上海
不好意思,不知道是我中文差劲,还是你说不清楚
1:列出inf中没纪录的文件?
2:列出inf中纪录的文件?
自己看下你自己1楼和7楼的话



本以为1楼的代码是你写的,所以.....
要问题1见6楼代码
要问题2见8楼代码(只是少了个/v)
自问自答完毕!
第9楼 suntb 发表于 2008-03-16 11:37
高级用户 发帖 277 积分 581
Originally posted by fastslz at 2008-3-16 00:22:
不好意思,不知道是我中文差劲,还是你说不清楚
1:列出inf中没纪录的文件?
2:列出inf中纪录的文件?
自己看下你 ...



感谢fastslz兄的解答,我看了下自个的回复,好象意思没什么大的出入啊

标题:如何显示未被所有INF文件引用的文件名
1楼:如果在所有inf文件中都没有被引用则显示此文件名
7楼:无法成功获取未被当前目录下所有INF文件调用的文件名
第10楼 suntb 发表于 2008-03-16 12:09
高级用户 发帖 277 积分 581
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文件中查询到有该文件名存在,则不显示
第11楼 fastslz 发表于 2008-03-16 13:59
铂金会员 发帖 2,315 积分 5,493 来自 上海
给你测试代码
test.bat
第12楼 yangzhiyi 发表于 2008-03-16 18:53
中级用户 发帖 123 积分 261
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



好强的代码
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023