中国DOS联盟论坛

中国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