中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教批处理查找并打开文件夹
作者:
标题: 请教批处理查找并打开文件夹 上一主题 | 下一主题
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『楼 主』:  请教批处理查找并打开文件夹

比如在D盘查找aaa文件夹,找到后打开.

  如果D盘有多个名为aaa的文件夹,如何挑选出一个占用空间最大或者文件夹内文件数量最多的aaa文件夹,并将其打开?

2007-11-28 15:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『第 2 楼』:  

没人知道吗?还是不可能实现?

2007-11-28 21:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


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

测试D:\TEST目录结构

├─a
│  └─aaa
├─aaa
├─b
│  ├─aaa
│  └─s_aaa
└─c
    ├─aaa
    └─s_aaa

rem 以文件数代码
@echo off
for /f "delims=" %%a in ('dir /s /b /ad D:\*aaa*^|find /i "\aaa"') do call :slz "%%a"
echo explorer.exe "%folder%"
pause

:slz
set xxx=%~1
if not defined xxx goto:eof
if not defined folder set "folder=%~1"
for /f "tokens=1* delims= " %%i in ('dir /-c "%~1"^|find "个文件"') do set most=%%i
if not defined most1 set most1=0
if %most% gtr %most1% set "most1=%most%" & set "folder=%~1"
echo "%~1" 有%most%个文件!
goto:eof

rem 以总文件大小代码
@echo off
for /f "delims=" %%a in ('dir /s /b /ad D:\*aaa*^|find /i "\aaa"') do call :slz "%%a"
echo explorer.exe "%folder%"
pause

:slz
set xxx=%~1
if not defined xxx goto:eof
if not defined folder set "folder=%~1"
for /f "tokens=3* delims= " %%i in ('dir /-c "%~1"^|find "个文件"') do set most=%%i
if not defined most1 set most1=0
if %most% gtr %most1% set "most1=%most%" & set "folder=%~1"
echo "%~1" 大小为 %most%!
goto:eof


  Quote:
最后结果
"D:\test\aaa" 有1个文件!
"D:\test\a\aaa" 有1个文件!
"D:\test\b\aaa" 有3个文件!
"D:\test\c\aaa" 有2个文件!
explorer.exe "D:\test\b\aaa"

[ Last edited by fastslz on 2007-11-29 at 10:50 PM ]



第一高手    第二高手

2007-11-29 00:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『第 4 楼』:  

高人,谢谢.

2007-11-29 21:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『第 5 楼』:  

另外我想知道,如果在不知道文件夹名字的情况下,也就是说打开D盘下文件夹内文件最多的一个文件夹,但是前提是不知道这个文件夹的名字,应该怎么做.

2007-11-29 21:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


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


@echo off
for /f "delims=" %%a in ('dir /s /b /ad D:\*') do call :slz "%%a"
echo explorer.exe "%folder%"
pause

:slz
set xxx=%~1
if not defined xxx goto:eof
if not defined folder set "folder=%~1"
for /f "tokens=1* delims= " %%i in ('dir /-c "%~1"^|find "个文件"') do set most=%%i
if not defined most1 set most1=0
if %most% gtr %most1% set "most1=%most%" & set "folder=%~1"
echo "%~1" 有%most%个文件!
goto:eof
[ Last edited by fastslz on 2007-11-29 at 10:51 PM ]



第一高手    第二高手

2007-11-29 21:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『第 7 楼』:  

谢谢"一根葱"大哥,一会儿去测试效果.

2007-11-29 21:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


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

3楼6楼代码修正过了(原来的处理不了首个数量最多的),重新测试~



第一高手    第二高手

2007-11-29 22:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『第 9 楼』:  

6楼的可以正确检测,但是"请按任意键继续"之后没动作了.

2007-11-30 23:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


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

@echo off
for /f "delims=" %%a in ('dir /s /b /ad D:\*') do call :slz "%%a"
echo explorer.exe "%folder%"
pause

:slz
set xxx=%~1
if not defined xxx goto:eof
if not defined folder set "folder=%~1"
for /f "tokens=1* delims= " %%i in ('dir /-c "%~1"^|find "个文件"') do set most=%%i
if not defined most1 set most1=0
if %most% gtr %most1% set "most1=%most%" & set "folder=%~1"
echo "%~1" 有%most%个文件!
goto:eof

我服了你!居然不知道echo和explorer.exe是什么东东,该多看看置顶教程了!去掉红色部分试试




第一高手    第二高手

2007-12-1 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『第 11 楼』:  

老大,我很菜,去掉后测试成功,万分感谢!
如果不想"按任意键继续"直接关闭命令提示符窗口,应该怎么弄啊?

2007-12-1 02:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


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

不你是老大
pause换成exit



第一高手    第二高手

2007-12-1 02:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jiudun
初级用户





积分 98
发帖 40
注册 2007-11-17
状态 离线
『第 13 楼』:  

惭愧,不是我笨啊,我以前没接触过批处理,正在努力学习,真是万分感谢!

2007-12-1 02:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: