标题: [文件操作] [已解决]如何搜索并运行当前目录或子目录中的批处理文件? [打印本页]
作者: hzusb 时间: 2011-11-16 11:06 标题: [已解决]如何搜索并运行当前目录或子目录中的批处理文件?
在当前目录或者子目录中有个"123.bat"文件,(文件位置不固定,但是只可能在当前目录或子目录中)。
我想实现的是:搜索到"123.bat"文件并直接运行,若找不到则有提示文字。恳请知道的朋友相助!谢谢!
————————————————————————————
原标题违规,本应警告封贴,但问题既已解决而未警告,属我失职,故代为修改。 by Crlf
作者: yyykkkyyyy 时间: 2011-11-16 11:54
本帖最后由 yyykkkyyyy 于 2011-11-16 12:03 编辑
- @echo off
- for /f "delims=" %%i in ('dir/b/s/a-d "123.bat"')do set "pa=%%~dpi"
- if defined pa cd "%pa%"&"123.bat"
- pause
复制代码
作者: hzusb 时间: 2011-11-16 12:03
回复 2# yyykkkyyyy
非常感谢你,可以用,谢谢!
如果找不到此文件,如何显示提示文字呢?(比如没找到123.bat)
作者: xslxslxsl 时间: 2011-11-16 12:27
2楼的代码不是可以提示文件没有找到吗
你是不是一定要提示没有找到123.bat啊
作者: hzusb 时间: 2011-11-16 12:47
回复 4# xslxslxsl
没有提示,如果放在一个空目录里运行,只会一闪而过!
作者: yyykkkyyyy 时间: 2011-11-16 12:49
本帖最后由 yyykkkyyyy 于 2011-11-16 13:03 编辑
就是嘛,已经有提示了,也可以满足你- @echo off
- set fn=123.bat
- for /f "delims=" %%i in ('dir/b/s/a-d "%fn%" 2^>nul')do set "pa=%%~dpi"
- if defined pa cd "%pa%"&cmd/b/c "%fn%"&exit
- echo 没找到 %fn% ,下一步啥办?
- pause
复制代码
补充: 要是一闪而过,估计是找到了一个同名bat文件,但那个bat运行的结果是一闪而过
我是没考虑当前目录下会有几个要找的文件的,如果有会执行后找到的那个
作者: canyuexiaolang 时间: 2011-11-16 13:07
伸手党。这标题闪瞎了我的钛合金狗眼、
不应该回答啊不应该回答...
作者: hzusb 时间: 2011-11-16 13:07
本帖最后由 hzusb 于 2011-11-16 13:10 编辑
厉害,你是高手,问题解决了,再次感谢yyykkkyyyy 朋友热心帮助!!
作者: canyuexiaolang 时间: 2011-11-16 13:13
回复 6# yyykkkyyyy
额...怎么我喜欢用for /r...个人习惯么...............
作者: yyykkkyyyy 时间: 2011-11-16 13:27
回复 9# canyuexiaolang
是啊,要是我自己用,喜欢类似 for /r %%i in (123.*bat)来找一个文件
作者: hzusb 时间: 2011-11-16 15:40
本帖最后由 hzusb 于 2011-11-16 15:44 编辑
不好意思,没看到版规,标题违规了,以后我注意!
作者: Hello123World 时间: 2011-11-17 17:28
- @echo off
- Set fn=123.bat
- For /f %%i in ('dir /s /b /a-d %fn%') do start "" "%%i" && Exit
- echo Not found %fn%
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |