[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]如何搜索并运行当前目录或子目录中的批处理文件?

在当前目录或者子目录中有个"123.bat"文件,(文件位置不固定,但是只可能在当前目录或子目录中)。

我想实现的是:搜索到"123.bat"文件并直接运行,若找不到则有提示文字。恳请知道的朋友相助!谢谢!

————————————————————————————
原标题违规,本应警告封贴,但问题既已解决而未警告,属我失职,故代为修改。    by Crlf
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. Set fn=123.bat
  3. For /f %%i in ('dir /s /b /a-d %fn%') do start "" "%%i" && Exit
  4. echo Not found %fn%
  5. pause
复制代码
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

本帖最后由 hzusb 于 2011-11-16 15:44 编辑

不好意思,没看到版规,标题违规了,以后我注意!

TOP

回复 9# canyuexiaolang
是啊,要是我自己用,喜欢类似 for /r %%i in (123.*bat)来找一个文件

TOP

回复 6# yyykkkyyyy
额...怎么我喜欢用for /r...个人习惯么...............

TOP

本帖最后由 hzusb 于 2011-11-16 13:10 编辑

厉害,你是高手,问题解决了,再次感谢yyykkkyyyy 朋友热心帮助!!

TOP

伸手党。这标题闪瞎了我的钛合金狗眼、
不应该回答啊不应该回答...
1

评分人数

    • CrLf: 感谢主动维护论坛管理!PB + 5

TOP

本帖最后由 yyykkkyyyy 于 2011-11-16 13:03 编辑

就是嘛,已经有提示了,也可以满足你
  1. @echo off
  2. set fn=123.bat
  3. for /f "delims=" %%i in ('dir/b/s/a-d "%fn%" 2^>nul')do set "pa=%%~dpi"
  4. if defined pa cd "%pa%"&cmd/b/c "%fn%"&exit
  5. echo 没找到 %fn% ,下一步啥办?
  6. pause
复制代码
补充: 要是一闪而过,估计是找到了一个同名bat文件,但那个bat运行的结果是一闪而过
我是没考虑当前目录下会有几个要找的文件的,如果有会执行后找到的那个
1

评分人数

    • CrLf: 乐于助人技术 + 1

TOP

回复 4# xslxslxsl


没有提示,如果放在一个空目录里运行,只会一闪而过!

TOP

2楼的代码不是可以提示文件没有找到吗
你是不是一定要提示没有找到123.bat啊

TOP

回复 2# yyykkkyyyy


非常感谢你,可以用,谢谢!

如果找不到此文件,如何显示提示文字呢?(比如没找到123.bat)

TOP

本帖最后由 yyykkkyyyy 于 2011-11-16 12:03 编辑
  1. @echo off
  2. for /f "delims=" %%i in ('dir/b/s/a-d "123.bat"')do set "pa=%%~dpi"
  3. if defined pa cd "%pa%"&"123.bat"
  4. pause
复制代码

TOP

返回列表