中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 19:40
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]全盘查找文件,然后... 查看 3,878 回复 9
楼 主 [已解决]全盘查找文件,然后... 发表于 2008-09-20 16:59 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
预期效果:

请输入要查找的文件名:wo.exe

1 c:\WINDOWS\wo.exe
2 d:\commandline tools\wo.exe

(”逼“一声)
查询结束

请选择...或按回车键退出. . .

• 每条结果前按顺序加上数字。
• 输入数字,回车,则执行命令。直接回车就退出。
执行的命令是:例如输入 1,回车,则执行 explorer /select,c:\WINDOWS\wo.exe

[ Last edited by tireless on 2008-9-20 at 12:05 AM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
moniuming +8 2008-09-20 19:32
2 发表于 2008-09-20 17:19 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
貌似for套dir就能实现。。。
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore
3 发表于 2008-09-20 17:26 ·  中国 广东 广州 电信
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
试试这个:
@echo off
setlocal enabledelayedexpansion
set /p str=请输入要查找的文件名:
set "drv=c d e f g h i j k l m n"
for %%a in (%drv%) do (
if exist %%a: (
for /f "delims=" %%b in ('dir /s/b/a-d "%%a:\%str%" 2^>nul') do (
set /a "n+=1"
set "_!n!=%%b"
echo !n! %%b
)
)
)
echo 
echo 查询结束...
:here
set "var="
set /p var=请选择:
if not defined var exit
start "" "!_%var%!"
goto :here
4 发表于 2008-09-20 17:28 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set /p file=请输入要查找的文件名:
if "%file%" equ "" (
goto :eof
) else if "%file%" equ "1" (
start explorer /select,c:\WINDOWS\wo.exe
goto :eof
)
>"a.txt" type nul
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%a: (
for /r %%a: %%h in (%file%) do (
>>"a.txt" echo %%h
)
)
)
findstr /n .* "a.txt"
echo 
5 发表于 2008-09-20 17:39 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set /p file=请输入要查找的文件名:
if "%file%" equ "" (
goto :eof
) else if "%file%" equ "1" (
start explorer /select,c:\WINDOWS\wo.exe
goto :eof
)
>"a.txt" type nul
for %%a in ("%file%") do (
set name=%%~na
set ext=%%~xa
)
set ext=%ext:~1%
for /f "skip=1 delims=" %%a in ('wmic datafile where "filename='%name%' and Extension='%ext%'" get name /value') do (
>>"a.txt" echo %%a
)
findstr /n .* "a.txt"
echo 
echo 查询结束
echo.
echo 请选择...或按回车键退出. . .
pause>
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
regvip2008 +2 2009-01-27 12:04
6 发表于 2008-09-20 17:47 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
额。不好意思,那个执行的命令是
explorer /select,所选数字的结果

例如有这些结果:
1 c:\1.txt
2 d:\1.txt
3 e:\1.txt

选择 1 回车后,则执行 explorer /select,c:\1.txt
选择 2 的话,则执行 explorer /select,d:\1.txt
选择 3 的话,则执行 explorer /select,e:\1.txt
7 发表于 2008-09-20 19:12 ·  中国 广东 广州 电信
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
explorer还有个/select参数?
8 Re 7楼 发表于 2008-09-20 19:18 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
yes
  在Windows中,相信大家对“Explorer.exe”并不陌生!通常情况下,在“开始→运行”中输 入“Explorer.exe”命令就能以“资源管理器”方式打开“我的文档”。其实,Explorer.exe还有很多鲜为人知的参数。

  命令格式

  Explorer ,],]

  参数说明

  /n表示以“我的电脑”方式打开一个新的窗口,通常打开的是Windows安装分区的根目录。

  /e表示以“资源管理器”方式打开一个新的窗口,通常打开的也是Windows安装分区的根目录。

  /root,表示打开指定的文件夹,/root表示只显示指定文件夹下面的文件(夹),不显示其它磁盘分区和文件夹;表示指定的路径。

  如果不加/root参数,而只用参数,则可以显示其它磁盘分区和文件夹中的内容。另外,还可以指定网络共享文件夹。

  /select,表示打开指定的文件夹并且选中指定的文件,表示指定的路径和文件名。

  如果不加/select参数,则系统会用相应的关联程序打开该文件。如果不跟文件名就会打开该文件夹的上级目录并选中该文件夹。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
moniuming +8 2008-09-20 19:32
9 六楼 发表于 2008-09-20 19:44 ·  中国 广东 广州 电信
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
@echo off
setlocal enabledelayedexpansion
set /p str=请输入要查找的文件名:
echo.
set "drv=c d e f g h i j k l m n"
for %%a in (%drv%) do (
if exist %%a: (
for /f "delims=" %%b in ('dir /s/b/a-d "%%a:\%str%" 2^>nul') do (
set /a "n+=1"
set "_!n!=%%b"
echo !n! %%b
)
)
)
echo 
echo 查询结束...
:here
set "var="
set /p var=请选择...或回车退出...:
if not defined var exit
explorer /select,"!_%var%!"
goto :here


太感谢楼主和HAT了,要不还真不知道explorer还有参数,谢谢两位!!!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
tireless +8 2008-09-20 20:04
10 re 8楼 发表于 2008-09-20 19:44 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
格式写得不准确
Explorer

/n Opens a new single-pane window for the default
selection. This is usually the root of the drive Windows
is installed on. If the window is already open, a
duplicate opens.

/e Opens Windows Explorer in its default view.

/root,<object> Opens a window view of the specified object.


/select,<object> Opens a window view with the specified folder, file or
application selected.

Examples:

Example 1: Explorer /select,C:\TestDir\TestApp.exe

Opens a window view with TestApp selected.

Example 2: Explorer /e,/root,C:\TestDir\TestApp.exe

This opens Explorer with C: expanded and TestApp selected.

Example 3: Explorer /root,\\TestSvr\TestShare

Opens a window view of the specified share.

Example 4: Explorer /root,\\TestSvr\TestShare,select,TestApp.exe

Opens a window view of the specified share with TestApp selected.
论坛跳转: