标题: [分享]批处理实现文件全盘搜索
[打印本页]
作者: icyheart
时间: 2007-8-22 00:21
标题: [分享]批处理实现文件全盘搜索
这个批处理虽然简单,但是能实现很多功能,不管你有多少个盘一律通吃,在找到文件后会把文件所在的具体位置给你显示出来,让你能一目了然...
@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
作者: blue812
时间: 2007-8-22 14:31
不错,学习了。谢谢~
作者: guxingyibei
时间: 2007-8-22 21:40
呵呵,不过有简单的啊!
@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
作者: icyheart
时间: 2007-8-22 23:36
嗯 是挺好的,学习
作者: icyheart
时间: 2007-8-22 23:37
你是怎么想出来的这个啊,能把你写的那代码的后半部分解试一下吗
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 ]
作者: zy125moto
时间: 2007-8-23 00:35
不懂学习中
作者: guxingyibei
时间: 2007-8-23 09:20
wmic datafile where "extension='txt' and filename='1'" get name
extension是扩展名,filename是文件名,get name应该是取它的特定信息,不加也可以,不过得到的是一大堆东西,不好看!
这个基本上就象是一个公式一样,我也才学wmic!
作者: icyheart
时间: 2007-8-23 09:48
嗯 谢谢啦
作者: hjkk123
时间: 2007-8-23 14:13
Quote: |
Originally posted by guxingyibei at 2007-8-22 09:40 PM:
呵呵,不过有简单的啊!
@echo off
set /p file=请输入要查询的文件:
for /f "delims=. tokens=1,2" %%c in ("%file%") do wmic datafile where "extension='%% ... |
|
我怎么查的有点慢啊,怎么改成能指定哪个驱动器,或者哪个文件夹下吗
作者: hjkk123
时间: 2007-8-23 14:32
Quote: |
Originally posted by icyheart at 2007-8-22 12:21 AM:
这个批处理虽然简单,但是能实现很多功能,不管你有多少个盘一律通吃,在找到文件后会把文件所在的具体位置给你显示出来,让你能一目了然...
... |
|
好像有错误
作者: guxingyibei
时间: 2007-8-23 20:31
这个是全盘搜索的,所以是有点慢了!
要想指定文件夹或者盘进行搜索,还是用楼主的方法合适!
作者: lxhpt
时间: 2008-2-19 17:50
标题: 查文件.
我的目的是在光盘中写一个批处理文件,当检测到系统中有该文件时,不做动作,如没有检测到该文件,执行安装程序.代码执行后结果不对.请帮忙看看.
@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
作者: lxmxn
时间: 2008-2-19 23:38
Quote: |
for %%i in (%alldrive%) do if exist %%i:\ find "1.exe" goto another |
|
这一句有问题,看看if命令和find命令的用法再试试。
作者: moniuming
时间: 2008-2-20 01:09
@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
作者: minspring
时间: 2008-2-20 13:09
能否解释一下这一句
for %%i in (%alldrive%) do if exist %%i:\ dir /s /b %%i:| find "%filename%">>results.txt
作者: moniuming
时间: 2008-2-20 19:00
在C到Z盘里(如果存在的话)及子目录中查找需要查找的文件,把结果输出到results.txt里.
作者: 5872169
时间: 2008-3-4 10:09
Quote: |
Originally posted by guxingyibei at 2007-8-22 09:40 PM:
呵呵,不过有简单的啊!
@echo off
set /p file=请输入要查询的文件:
for /f "delims=. tokens=1,2" %%c in ("%file%") do wmic datafile where "extension='%% ... |
|
以上代码无法全盘搜索*.jpg,只能搜索已知文件名和后缀!
作者: regvip2008
时间: 2008-3-5 11:42
Quote: |
Originally posted by guxingyibei at 2007-8-22 09:40 PM:
呵呵,不过有简单的啊!
@echo off
set /p file=请输入要查询的文件:
for /f "delims=. tokens=1,2" %%c in ("%file%") do wmic datafile where "extension='%% ... |
|
理论上此法是相当简单的,看似没问题!但为什么我输入qq.exe,返回结果为“无可用范例”呢?望高人分析下!
作者: yk520
时间: 2008-3-20 22:27
好东西啊
作者: XiaoGuDong
时间: 2008-4-6 00:00
隐藏分区中的怎么查找?它不是全盘么?
作者: Iamzone
时间: 2008-4-7 19:32
好
作者: binggao
时间: 2008-4-9 12:27
基本上明白是什么意思 但是还是有个别的不是很清楚 还要继续学习啊
作者: stance
时间: 2008-4-21 16:44
很有意思,學習了。