中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-02 21:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (求助)关于批处理搜索文件的请教,谢谢! 查看 1,735 回复 13
楼 主 (求助)关于批处理搜索文件的请教,谢谢! 发表于 2006-12-21 16:16 ·  中国 广东 深圳 电信
初级用户
积分 93
发帖 35
注册 2006-12-20 10:43
19年会员
UID 74034
性别 男
状态 离线
如何用批处理写在搜索指定文件后,打开文件所在的文件夹。

........输入要搜索的文件名:
.......正在搜索中请稍等......
打开文件所在的文件夹
2 发表于 2006-12-21 23:49 ·  中国 上海 静安区 电信
初级用户
★★
积分 148
发帖 69
注册 2006-11-23 23:04
19年会员
UID 71504
性别 男
状态 离线
试试这个吧:
注意文件比较多的话估计会让你机器够呛的!!

for /r %%i in (*.bat) do start %cd:~0,2%%%~pi
3 发表于 2006-12-22 05:46 ·  中国 广东 深圳 电信
初级用户
积分 93
发帖 35
注册 2006-12-20 10:43
19年会员
UID 74034
性别 男
状态 离线
有没有有更好点的方法!
4 发表于 2006-12-22 06:17 ·  中国 贵州 贵阳 电信
中级用户
★★
积分 304
发帖 117
注册 2006-04-04 18:43
20年会员
UID 53325
性别 男
状态 离线
可以先用tree做各分区的目录数,保存到莫个指定文本,然后在文本中搜索文件
5 发表于 2006-12-22 06:18 ·  中国 江苏 南京 电信
高级用户
★★
积分 623
发帖 214
注册 2006-09-22 20:48
19年会员
UID 63387
状态 离线
@echo off
set /p a=请输入要搜索文件(要加扩展名):
echo 正在搜索中,请稍等.........
for %%i in (c d e f g h) do @(
for /f %%j in ('dir %%i:\%a% /s/a/b') do start %%~pj
)
6 发表于 2006-12-22 06:26 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
请问你要查找的文件到处都有还是只有一个?
若是具有唯一性,下面的代码应该可以(抄自lxmxn):

@echo off
set/p input=请输入要查询的文件名
for %%i in (c d e f) do (
for /f "delims=" %%a in ('dir /s/b/a-d %%i:\%input% 2^>nul') do (
start %%~dpsa&&goto :eof
)
)
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
7 发表于 2006-12-22 06:50 ·  中国 广东 深圳 电信
初级用户
积分 93
发帖 35
注册 2006-12-20 10:43
19年会员
UID 74034
性别 男
状态 离线
谢谢tianzizhi,还有个问题,用你的方法,
不能实现全盘搜索,只能把bat放到那个盘符就搜索那个盘的文件。
不会打开C:\Program Files文件夹,只会打开C盘。
8 发表于 2006-12-22 06:54 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
~~~>_<~~~
试试我的......
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
9 发表于 2006-12-22 06:54 ·  中国 广东 深圳 电信
初级用户
积分 93
发帖 35
注册 2006-12-20 10:43
19年会员
UID 74034
性别 男
状态 离线
ccwan的方法也不行,你不相信把BAT放到桌面,看看能不能找到D盘文件!
10 发表于 2006-12-22 06:56 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
我试过好多次了,可以啊!
你找什么文件打不开d:?
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
11 发表于 2006-12-22 07:11 ·  中国 河北 廊坊 三河市 移动
金牌会员
★★★★
积分 2,725
发帖 1,160
注册 2006-09-23 12:00
19年会员
UID 63486
来自 河北廊坊
状态 离线
其实这个批处理还可以改动一下,比如你要找1.txt,但是机子里有3~5个,那就把代码中 &&goto :eof 去掉,有几个1.txt打开几个文件夹,若你不嫌烦人的话.^_^
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
12 发表于 2006-12-22 07:26 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
19年会员
UID 67972
状态 离线
对ccwan的修改一下,支持有空格的文件名.


@echo off
set/p input=请输入要查询的文件名:
for %%i in (c d e f) do (
for /f "usebackq delims=" %%a in (`dir/s/b/a-d "%%i:\%input%" 2^>nul`) do (
start %%~dpsa
)
)

认识自己,降伏自己,改变自己
,才能改变别人!
13 发表于 2006-12-22 08:38 ·  中国 广东 深圳 电信
初级用户
积分 93
发帖 35
注册 2006-12-20 10:43
19年会员
UID 74034
性别 男
状态 离线
谢谢tao0610,这个是我要的,又学习了。
14 发表于 2006-12-22 09:00 ·  中国 甘肃 兰州 城关区 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
怎么start 都不加空格那?
论坛跳转: