![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 18:14 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 用批处理实现文件搜索 |
| 可打印版本 971 / 8 |
| 第1楼 fjcase | 发表于 2007-03-07 13:05 |
| 初级用户 发帖 23 积分 53 | |
|
用批处理实现文件搜索 @echo off
title 文件搜索 color 2b echo. echo. :loop set /p filename=请输入你要找的文件名: echo 正在搜索中,请耐心等待。。。。。 for %%i in (c:,d:,e:,f:) do dir /s /b %%i\%filename% >>filepath.txt 2>nul echo 搜索完毕,请打开1.txt查看 echo. echo. echo 如需要继续查询请输入y,退出请输入n echo. echo.----------------------------------- set /p mychoice=请输入您的选择: if %mychoice%==y goto loop if %mychoice%==n goto end pause>nul :end exit |
|
| 第2楼 zhoushijay | 发表于 2007-03-07 13:47 |
| 高级用户 发帖 375 积分 845 | |
|
我也写了一 个
echo off :agn cls set /p a=请输入完整的文件名: echo 搜索中,请稍侯... for %%i in (c,d,e,f) do dir /s /b %%i:\"%a%" 2>nul :error echo 继续搜索请按a; 保存信息请按s; 退出请按o set /p s=请选择: if %s%==a (goto :agn) if %s%==s (goto :save) if %s%==o (goto :out) if not %s%==a==s==o (goto :error) :save for %%i in (c,d,e,f) do dir /s /b %%i:\%a% 2>nul >>c:\path.txt echo 已保存到"c:\path.txt"内 goto :error :out cls echo --------------------------------------------------------- echo 感谢您使用本程序,不足之处还请见量! echo -------------------------------------------SJAY制作------ echo 本程序将在5秒内退出... ping -n 5 127.1 >nul |
|
| 第3楼 ccwan | 发表于 2007-03-07 21:52 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
What and what?
[ Last edited by ccwan on 2007-3-8 at 08:51 PM ] |
|
| 第4楼 fjcase | 发表于 2007-03-08 07:59 |
| 初级用户 发帖 23 积分 53 | |
|
如果文件没有找到怎么体现出来
|
|
| 第5楼 zhoushijay | 发表于 2007-03-08 08:12 |
| 高级用户 发帖 375 积分 845 | |
|
把后面的 2>nul 去掉就可以,不过因为在c,d,e,f 4个盘中搜索,所以会有
找不到文件 找不到文件 找不到文件 找不到文件 4个提示 修改后的方案:(目前只有这样了) for %%i in (c,d,e,f) do dir /s /b %%i:\"%a%" 2>nul || echo %%i盘找不到文件! 没有测试过 |
|
| 第6楼 fjcase | 发表于 2007-03-08 10:02 |
| 初级用户 发帖 23 积分 53 | |
|
能不能搜索完所有的盘,如果找不到文件再显示出来呢?楼上的代码测试过了也不行
|
|
| 第7楼 nzisisco | 发表于 2007-03-08 15:53 |
| 初级用户 发帖 47 积分 107 | |
|
照楼主的我改了一个
@echo off title 文件搜索 color 2b echo. echo. :loop set /p filename=请输入你要找的文件名: echo 正在搜索中,请耐心等待。。。。。 set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z for %%i in (%alldrive%) do dir /s /b %%i:\%filename% >>filepath.txt echo 搜索完毕,请打开filepath.txt查看 echo. echo. echo 如需要继续查询请输入y,退出请输入n echo. echo.----------------------------------- set /p mychoice=请输入您的选择: if %mychoice%==y goto loop if %mychoice%==n goto end pause>nul :end exit 这样可以搜索从c到z盘 |
|
| 第8楼 zhoushijay | 发表于 2007-03-11 02:24 |
| 高级用户 发帖 375 积分 845 | |
|
楼上的代码似乎也不行,当Z盘运行完后filepath.txt内容会替换前面几个盘的结果
所以最后filepath.txt的内容只是搜索完Z盘后的结果 |
|
| 第9楼 fjcase | 发表于 2007-03-11 06:06 |
| 初级用户 发帖 23 积分 53 | |
|
想要的是搜索完之后如果没有找到文件 要显示出来
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |