标题: [文件操作] [已解决]批处理如何全盘搜索指定程序并执行? [打印本页]
作者: xxez 时间: 2011-9-25 20:02 标题: [已解决]批处理如何全盘搜索指定程序并执行?
有什么办法全盘搜索指定程序并执行
要求:1. 运行后退出搜索
2. 优先搜索所有磁盘下的某目录(C、D、E盘等下的指定目录)
在网上找的能运行但会继续搜索- for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get name') do (
- for /f "delims=" %%e in ('dir /s /b %%i\XX.exe 2^>nul') do start "" "%%~e"
- )
复制代码
作者: awk 时间: 2011-9-25 21:44
- @echo off
- for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get name') do (
- for /f "delims=" %%e in ('dir /s /b %%i\XX.exe 2^>nul') do (
- set "fullpath=%%~e"
- goto :breakloop
- )
- )
- goto :eof
-
- :breakloop
- if exist "%fullpath%" (
- start "" "%fullpath%"
- )
复制代码
作者: xxez 时间: 2011-9-26 12:44
本帖最后由 xxez 于 2011-9-26 12:47 编辑
回复 2# awk
优先搜索目录该在何处添加(多个磁盘下),不是很懂,麻烦解释下,谢谢!!
作者: xxez 时间: 2011-9-26 14:19
求解!!!
作者: awk 时间: 2011-9-26 14:51
回复 3# xxez - @echo off
- set "firstlook=test\folder\myfolder"
- for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get name') do (
- for /f "delims=" %%e in ('dir /s /b "%%i\%firstlook%\XX.exe" 2^>nul') do (
- set "fullpath=%%~e"
- if exist "%fullpath%" (
- goto :breakloop
- )
- )
- )
- for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get name') do (
- for /f "delims=" %%e in ('dir /s /b %%i\XX.exe 2^>nul') do (
- set "fullpath=%%~e"
- if exist "%fullpath%" (
- goto :breakloop
- )
- )
- )
- goto :eof
-
- :breakloop
- start "" "%fullpath%"
复制代码
作者: cjiabing 时间: 2011-9-26 22:53
本帖最后由 cjiabing 于 2011-9-26 22:56 编辑
-
- @echo off
- echo,
- set /p nvar= 请输入搜索名称:
- echo,
- set /p pvar= 请输入搜索路径(直接回车全盘搜索):
- echo,
- if not defined pvar if "%pvar%"=="" goto qpss
- if defined pvar if not "%pvar%"=="" if exist %pvar% (
- for /f "tokens=*" %%a in ('dir /b /s %pvar%\*%nvar%') do (if exist "%%~a" echo;%%a&start "" "%%~a"&pause)
- exit
- )
- :qpss
- for %%i 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 %%i: for /f "tokens=*" %%a in ('dir /b /s %%i:\*%nvar%') do (if exist "%%~a" echo;%%a&start "" "%%~a"&pause)
- )
- exit
复制代码
优先搜索CD盘,这个没什么优先的,批处理按顺序就是从第一个开始的。当然上面的也可以调整。
现在上面的代码,要么指定路径搜索(去掉第一个EXIT可以形成优先),要么指定全盘搜索。如果既要优先又要全屏,请去掉第一个EXIT命令。
作者: xxez 时间: 2011-9-27 12:48
谢谢,问题已解决!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |