中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何显示未被所有INF文件引用的文件名
作者:
标题: 如何显示未被所有INF文件引用的文件名 上一主题 | 下一主题
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『楼 主』:  如何显示未被所有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 ]

2008-3-14 11:08
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

楼主有没有考虑过自己的外层for循环遇到带空格的文件名是否会出问题?

2008-3-14 11:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by HAT at 2008-3-14 11:49:
楼主有没有考虑过自己的外层for循环遇到带空格的文件名是否会出问题?

当前目录下所有文件名均不带空格

2008-3-14 12:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 4 楼』:  

麻烦各位兄弟帮忙想下办法

如何判断:文件名在所有inf文件中都没有被引用?

2008-3-14 12:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 5 楼』:  

顶上求助下

2008-3-14 22:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

目录里没有包含空格,这个代码最简便
@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
未测试



第一高手    第二高手

2008-3-15 00:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by fastslz at 2008-3-15 00:06:
目录里没有包含空格,这个代码最简便
[code]
@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文件调用的文件名

2008-3-15 22:55
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 8 楼』:  

不好意思,不知道是我中文差劲,还是你说不清楚
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)
自问自答完毕!



第一高手    第二高手

2008-3-16 00:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by fastslz at 2008-3-16 00:22:
不好意思,不知道是我中文差劲,还是你说不清楚
1:列出inf中没纪录的文件?
2:列出inf中纪录的文件?
自己看下你 ...

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

标题:如何显示未被所有INF文件引用的文件名
1楼:如果在所有inf文件中都没有被引用则显示此文件名
7楼:无法成功获取未被当前目录下所有INF文件调用的文件名

2008-3-16 11:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 10 楼』:  



  Quote:
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文件中查询到有该文件名存在,则不显示

2008-3-16 12:09
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 11 楼』:  

给你测试代码
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




第一高手    第二高手

2008-3-16 13:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yangzhiyi
中级用户





积分 261
发帖 123
注册 2006-6-6
状态 离线
『第 12 楼』:  



  Quote:
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


好强的代码

2008-3-16 18:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: