![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 13:51 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [分享]批处理实现文件全盘搜索 |
| 可打印版本 3,217 / 22 |
| 第1楼 icyheart | 发表于 2007-08-22 00:21 |
| 中级用户 发帖 81 积分 216 | |
|
[分享]批处理实现文件全盘搜索 这个批处理虽然简单,但是能实现很多功能,不管你有多少个盘一律通吃,在找到文件后会把文件所在的具体位置给你显示出来,让你能一目了然...
@echo off echo icyheart制作 title 文件搜索 color 2a echo. :loop set /p filename=请输入要查找的文件名: echo. 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 if exist %%i:\ dir /s /b %%i:| find "%filename%">>results.txt type results.txt del results.txt echo 搜索完毕 echo. echo. echo 继续查询请输入y,退出请输入n echo. echo.====================================== set /p choice=请输入您的选择: if %choice%==y goto loop if %choice%==n goto end pause>nul :end exit |
|
| 第2楼 blue812 | 发表于 2007-08-22 14:31 |
| 初级用户 发帖 29 积分 57 | |
|
不错,学习了。谢谢~
|
|
| 第3楼 guxingyibei | 发表于 2007-08-22 21:40 |
| 初级用户 发帖 32 积分 68 | |
|
呵呵,不过有简单的啊!
@echo off set /p file=请输入要查询的文件: for /f "delims=. tokens=1,2" %%c in ("%file%") do wmic datafile where "extension='%%d' and filename='%%c'" get name |
|
| 第4楼 icyheart | 发表于 2007-08-22 23:36 |
| 中级用户 发帖 81 积分 216 | |
|
嗯 是挺好的,学习
|
|
| 第5楼 icyheart | 发表于 2007-08-22 23:37 |
| 中级用户 发帖 81 积分 216 | |
|
你是怎么想出来的这个啊,能把你写的那代码的后半部分解试一下吗
for /f "delims=. tokens=1,2" %%c in ("%file%") do wmic datafile where "extension='%%d' and filename='%%c'" get name 就是这句 [ Last edited by icyheart on 2007-8-22 at 11:39 PM ] |
|
| 第6楼 zy125moto | 发表于 2007-08-23 00:35 |
| 初级用户 发帖 11 积分 22 | |
|
不懂学习中
|
|
| 第7楼 guxingyibei | 发表于 2007-08-23 09:20 |
| 初级用户 发帖 32 积分 68 | |
|
wmic datafile where "extension='txt' and filename='1'" get name
extension是扩展名,filename是文件名,get name应该是取它的特定信息,不加也可以,不过得到的是一大堆东西,不好看! 这个基本上就象是一个公式一样,我也才学wmic! |
|
| 第8楼 icyheart | 发表于 2007-08-23 09:48 |
| 中级用户 发帖 81 积分 216 | |
|
嗯 谢谢啦
|
|
| 第9楼 hjkk123 | 发表于 2007-08-23 14:13 |
| 初级用户 发帖 82 积分 160 | |
Originally posted by guxingyibei at 2007-8-22 09:40 PM: 我怎么查的有点慢啊,怎么改成能指定哪个驱动器,或者哪个文件夹下吗 |
|
| 第10楼 hjkk123 | 发表于 2007-08-23 14:32 |
| 初级用户 发帖 82 积分 160 | |
Originally posted by icyheart at 2007-8-22 12:21 AM: 好像有错误 |
|
| 第11楼 guxingyibei | 发表于 2007-08-23 20:31 |
| 初级用户 发帖 32 积分 68 | |
|
这个是全盘搜索的,所以是有点慢了!
要想指定文件夹或者盘进行搜索,还是用楼主的方法合适! |
|
| 第12楼 lxhpt | 发表于 2008-02-19 17:50 |
| 新手上路 发帖 4 积分 9 | |
|
查文件. 我的目的是在光盘中写一个批处理文件,当检测到系统中有该文件时,不做动作,如没有检测到该文件,执行安装程序.代码执行后结果不对.请帮忙看看.
@echo off set alldrive=c d e f for %%i in (%alldrive%) do if exist %%i:\ find "1.exe" goto another goto :no :another goto end :no star starup.exe goto end :end |
|
| 第13楼 lxmxn | 发表于 2008-02-19 23:38 |
| 版主 发帖 4,938 积分 11,386 | |
for %%i in (%alldrive%) do if exist %%i:\ find "1.exe" goto another 这一句有问题,看看if命令和find命令的用法再试试。 |
|
| 第14楼 moniuming | 发表于 2008-02-20 01:09 |
| 银牌会员 发帖 574 积分 1,335 来自 广西 | |
|
@echo off
for %%i in (c d e f) do ( for /f "delims=" %%j in ('dir /s /b /a-d "%%i:\1.txt"') do ( start starup.exe ) ) pause |
|
| 第15楼 minspring | 发表于 2008-02-20 13:09 |
| 新手上路 发帖 4 积分 8 | |
|
能否解释一下这一句
for %%i in (%alldrive%) do if exist %%i:\ dir /s /b %%i:| find "%filename%">>results.txt |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |