Board logo

标题: [文件操作] [已解决]批处理全盘查找QQ并根据其父文件夹选择执行其一 [打印本页]

作者: k83133058    时间: 2009-4-12 00:32     标题: [已解决]批处理全盘查找QQ并根据其父文件夹选择执行其一

如果电脑里安装了两个QQ,
一个是IPQQ ,路径为:d:聊天工具\ipQQ\QQ.exe
另一个是QQ2008正式版,路径为:d:聊天工具\QQ\QQ.exe
用批处理全盘查找QQ.exe,会同时找到以上两个目录的QQ.exe (\ipQQ\QQ.exe ; \QQ\QQ.exe),
我想找到后并运行路径为: d:聊天工具\QQ\QQ.exe要怎么写,
我用reg query查找注册表中QQ的安装信息,找不到,
请给个具体的代码,谢谢!!!

补充:我用的是网吧的客户机 查找注册表可能被限制

[ 本帖最后由 k83133058 于 2009-4-12 00:45 编辑 ]
作者: cjiabing    时间: 2009-4-12 01:19

运行而已嘛,搞那么复杂干嘛?!~哪里用的找reg?
如果知道路径,直接  start  d:\聊天工具\QQ\QQ.exe  就得了嘛。
可以这样:
if exist  d:\聊天工具\QQ\QQ.exe  start  d:\聊天工具\QQ\QQ.exe  
还可以这样:
set /p a=请输入要执行的QQ(1为IPQQ,2为QQ2009)
if %a% == 1  (start  d:\聊天工具\ipQQ\QQ.exe) else (start  d:\聊天工具\QQ\QQ.exe)
没用过else,不知道正确与否?
作者: k83133058    时间: 2009-4-12 01:37

楼上说的我也知道,但我就是想写个自动全盘查找QQ.exe并自动登陆QQ的批处理,虽没解决我的问题,还是谢谢你!

[ 本帖最后由 k83133058 于 2009-4-12 01:39 编辑 ]
作者: 随风    时间: 2009-4-12 01:46

看你的问题似乎不是如何找到这两个qq.exe的路径,而是如何选择父目录为QQ的那个qq.exe是吗?
  1. @echo off
  2. set var=d:\聊天工具\QQ\QQ.exe
  3. ::以下是判断代码
  4. for /f "delims=" %%a in ("%var%") do (
  5.    for /f "delims=" %%i in ("%%~pa.") do (
  6.       if /i "%%~ni"=="qq" echo %%a
  7. ))
  8. pause
复制代码
[/code]

[ 本帖最后由 随风 于 2009-4-12 02:13 编辑 ]
作者: k83133058    时间: 2009-4-12 02:24

@echo off
rem 指定待搜索的文件
set "FileName=QQ.exe"
echo 正在搜索,请稍候...
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:\nul (
    for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
      if /i "%%~nxb" equ "%FileName%" (
       echo.%%b
      )
    )
  )
)
pause
上面的代码找到两个QQ的路径
d:聊天工具\ipQQ\QQ.exe
d:聊天工具\QQ\QQ.exe
我想再让他运行 d:聊天工具\QQ\QQ.exe该怎么写

谢谢
作者: 随风    时间: 2009-4-12 02:59

  1. @echo off
  2. rem 指定待搜索的文件
  3. set "FileName=QQ.exe"
  4. echo 正在搜索,请稍候...
  5. 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 (
  6.    if not defined flag (
  7.       if exist %%i:\nul set p=%%i:\&call :loop %%i
  8. ))
  9. pause&exit
  10. :loop
  11. for /r %p% %%j in (%FileName%) do (
  12.    if exist "%%j" (
  13.       for /f "delims=" %%i in ("%%~pj.") do (
  14.           if /i "%%~ni"=="qq" (
  15.               echo %%j
  16.               set flag=a&goto :EOF
  17. ))))
  18. goto :EOF
复制代码

作者: k83133058    时间: 2009-4-12 03:20

谁帮我解说下楼上兄台的代码,谢谢
作者: Batcher    时间: 2009-4-12 12:22     标题: 回复 7楼 的帖子

哪句不懂,就问哪句,有很多热心人会告诉你答案;如果全部不懂,建议先去教学区学习基础教程,这样才能更快的掌握批处理。
作者: yzhf29    时间: 2010-10-20 23:19

原帖由 k83133058 于 2009-4-12 03:20 发表
谁帮我解说下楼上兄台的代码,谢谢


我也不懂工




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2