|
icyheart
中级用户
积分 216
发帖 81
注册 2007-8-6
状态 离线
|
『楼 主』:
[分享]批处理实现文件全盘搜索
这个批处理虽然简单,但是能实现很多功能,不管你有多少个盘一律通吃,在找到文件后会把文件所在的具体位置给你显示出来,让你能一目了然...
@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
|
|
2007-8-22 00:21 |
|
|
blue812
初级用户
积分 57
发帖 29
注册 2006-9-27
状态 离线
|
|
2007-8-22 14:31 |
|
|
guxingyibei
初级用户
积分 68
发帖 32
注册 2007-4-1
状态 离线
|
『第
3 楼』:
呵呵,不过有简单的啊!
@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
|
|
2007-8-22 21:40 |
|
|
icyheart
中级用户
积分 216
发帖 81
注册 2007-8-6
状态 离线
|
|
2007-8-22 23:36 |
|
|
icyheart
中级用户
积分 216
发帖 81
注册 2007-8-6
状态 离线
|
『第
5 楼』:
你是怎么想出来的这个啊,能把你写的那代码的后半部分解试一下吗
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 ]
|
|
2007-8-22 23:37 |
|
|
zy125moto
初级用户
积分 22
发帖 11
注册 2007-8-22
状态 离线
|
|
2007-8-23 00:35 |
|
|
guxingyibei
初级用户
积分 68
发帖 32
注册 2007-4-1
状态 离线
|
『第
7 楼』:
wmic datafile where "extension='txt' and filename='1'" get name
extension是扩展名,filename是文件名,get name应该是取它的特定信息,不加也可以,不过得到的是一大堆东西,不好看!
这个基本上就象是一个公式一样,我也才学wmic!
|
|
2007-8-23 09:20 |
|
|
icyheart
中级用户
积分 216
发帖 81
注册 2007-8-6
状态 离线
|
|
2007-8-23 09:48 |
|
|
hjkk123
初级用户
积分 160
发帖 82
注册 2007-5-14
状态 离线
|
『第
9 楼』:
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='%% ... |
|
我怎么查的有点慢啊,怎么改成能指定哪个驱动器,或者哪个文件夹下吗
|
|
2007-8-23 14:13 |
|
|
hjkk123
初级用户
积分 160
发帖 82
注册 2007-5-14
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by icyheart at 2007-8-22 12:21 AM:
这个批处理虽然简单,但是能实现很多功能,不管你有多少个盘一律通吃,在找到文件后会把文件所在的具体位置给你显示出来,让你能一目了然...
... |
|
好像有错误
|
|
2007-8-23 14:32 |
|
|
guxingyibei
初级用户
积分 68
发帖 32
注册 2007-4-1
状态 离线
|
『第
11 楼』:
这个是全盘搜索的,所以是有点慢了!
要想指定文件夹或者盘进行搜索,还是用楼主的方法合适!
|
|
2007-8-23 20:31 |
|
|
lxhpt
新手上路
积分 9
发帖 4
注册 2008-2-18
状态 离线
|
『第
12 楼』:
查文件.
我的目的是在光盘中写一个批处理文件,当检测到系统中有该文件时,不做动作,如没有检测到该文件,执行安装程序.代码执行后结果不对.请帮忙看看.
@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
|
|
2008-2-19 17:50 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
13 楼』:
Quote: | for %%i in (%alldrive%) do if exist %%i:\ find "1.exe" goto another |
|
这一句有问题,看看if命令和find命令的用法再试试。
|
|
2008-2-19 23:38 |
|
|
moniuming
银牌会员
永远的菜鸟
积分 1335
发帖 574
注册 2007-11-27 来自 广西
状态 离线
|
『第
14 楼』:
@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
|
|
2008-2-20 01:09 |
|
|
minspring
新手上路
积分 8
发帖 4
注册 2008-2-15
状态 离线
|
『第
15 楼』:
能否解释一下这一句
for %%i in (%alldrive%) do if exist %%i:\ dir /s /b %%i:| find "%filename%">>results.txt
|
|
2008-2-20 13:09 |
|