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

[其他] 批处理如何查找指定文件并将当前目录环境切换到该文件所在的目录下

本帖最后由 pcl_test 于 2016-11-17 12:52 编辑

求助:实现搜索功能
我想实现的是搜索某文件后在进入其所在目录。
例如:我想搜索的是qq.exe文件,搜索后知道在“聊天”目录里,就进入该目录!!!

----我认为重要的是如何让bat文件知道qq是在“聊天”的目录里!!!

请帮助解答!!!

  1. @echo off
  2. for /f "delims=" %%a in ('dir/b/s qq.exe') do set "QQpath=%%~dpa"
  3. echo.%QQpath%
  4. pause
复制代码
  1. @echo off
  2. for /f "tokens=2*" %%a in ('reg query hklm\software\tencent\qq^|findstr/i "Install"') do set QQpath=%%b
  3. echo.%QQpath%
  4. pause
复制代码
1

评分人数

心绪平和,眼藏静谧。

TOP

楼上。
我测试了第一个筐筐的代码。得到:“找不到文件”是为什么?
还有第一段代码也是找路径么???


测试第二个代码只得到了qq安装的路径,我想要的 是
1:得到路径。-----你做到了,
2:进入该路径----你没写???

TOP

  1. for %%b in (c d e f g h i) do (pushd %%b: & for %%i in ('dir /s /a: "qq.exe") do (echo %~fi&&explorer %~fi&pause))
复制代码
不知道能不能用
没试过
错误的话 你试着改改百分号
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

'reg query hklm\software\tencent\qq^|findstr/i "Install"'
这一句写得很好~~~~很厉害呀   值得学习
o(∩_∩)o...~~~
空间:http://hi.baidu.com/fair_jm
喜欢批处理的没事的话去逛逛哦~~

TOP

回复 3楼 的帖子

第一段代码只是从当前目录搜索QQ.EXE 包括子目录。
用第二段代码吧,通用高效。
进入。。。
cd /d %QQpath%
心绪平和,眼藏静谧。

TOP

呵呵 真佩服版主们能耐心....
换了我...

TOP

谢谢了
成功!!!

TOP

  1. FOR  %%a in ( c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: s: y: z: ) do dir /s/b %%a\qq.exe>>list.txt
  2. FOR /f "delims=" %%b in ( 'type list.txt' ) do  "%%b"
复制代码

TOP

原帖由 pusofalse 于 2008-8-18 22:44 发表
@echo off
for /f "delims=" %%a in ('dir/b/s qq.exe') do set "QQpath=%%~dpa"
echo.%QQpath%
pause@echo off
for /f "tokens=2*" %%a in ('reg query hklm\software\tencent\qq^|findstr/i "Install"') do se ...

经测试,1、有空格路径时路径显示不完整。2、多个版本多个地方安装qq程序时无法满足需求 3、无法进入有空格的路径

TOP

原帖由 千浪 于 2008-8-23 16:27 发表

FOR  %%a in ( c: d: e: f: g: h: i: j: k: l: m: n: o: p: q: r: s: t: u: v: w: s: y: z: ) do dir /s/b %%a\qq.exe>>list.txt
FOR /f "delims=" %%b in ( 'type list.txt' ) do  "%%b"


经测试:
1、能找到电脑上所有安装的qq程序路径,并逐一显示
2、但不能进入相应目录,而是打开了相应目录的qq程序,和楼主需求不一

TOP

for /f "skip=1 tokens=1*" %i in ('wmic datafile where "filename='qq' and extension='exe'" get drive^,path') do (explorer %i%j)

TOP

2楼看

我顶@!!
斑竹问题出来了!!!!
@echo off
for /f "tokens=2*" %%a in ('reg query hklm\software\tencent\qq^|findstr/i "Install"') do set QQpath=%%b
echo.%QQpath%
pause
这段代码在本网吧测试的时候显示:"找不到相应的注册表键值"

TOP

  1. for /f "skip=4 tokens=2,*" %%i in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ" /v "Install"') do (
  2.     set QQ=%%j.\QQ.exe
  3. ) >nul 2>nul
  4. cls
  5. if not '%QQ%'=='' goto fndqq
  6. echo 注册表中没有QQ的安装信息,正在全盘搜索……
  7. 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 (
  8.     pushd %%a:\
  9.     for /r %%b in (.) do (
  10.         if exist %%b\QQ.exe set QQ=%%b\QQ.exe
  11.     )
  12. ) >nul 2>nul
  13. popd
  14. set regadd=%QQ:~0,-8%
  15. REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\TENCENT\QQ" /v "Install" /t REG_SZ /d %regadd% >nul 2>nul
  16. cls
  17. :fndqq
  18. echo %QQ%
  19. pause
复制代码
先从注册表中查找QQ路径,如果找不到,说明QQ是绿色安装的,那么全盘搜索QQ

TOP

原帖由 jellyhk 于 2008-8-28 00:00 发表
我顶@!!
斑竹问题出来了!!!!
@echo off
for /f "tokens=2*" %%a in ('reg query hklm\software\tencent\qq^|findstr/i "Install"') do set QQpath=%%b
echo.%QQpath%
pause
这段代码在本网吧测试的时候显示:"找 ...

很明显是你的注册表问题了,^_^因为是网吧的电脑,在我电脑上测试正常。
心绪平和,眼藏静谧。

TOP

返回列表