无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 8242|回复: 13
打印 上一主题 下一主题

批处理搜索程序后并带参数运行程序

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-23 20:54:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用批处理搜索一个程序 rar.exe的程序,搜索到后并且是带参数 /s /q运行,
请问该怎么写
下面是我根据坛友帖子写的,怎么把/s /q两个参数加进去呢
大家知道rar程序加了/s /q之后就可以静默安装啦,我要的就是这个效果,求助!
@echo off
title 正在搜索程序
color 2E
mode con cols=35 lines=30
echo.
echo.
echo.
echo 正在搜索RAR.EXE

echo.
for %%i in (q p o n m l k j i h g z f e d c) do (
echo 正在搜索%%i盘 请稍后...
cd /d %%i:\
for /f "delims=" %%i in ('dir "rar.exe" /b /s') do (start /wait "" "%%i"
exit)
)


如果可以的话,我还想用一个批处理搜索好几个程序来运行,
比如上面的rar.exe文件搜索到了之后运行了,继续搜索2012qq.exe,请问这样可以做到吗,可以的话,帮帮忙!

问题已解决,谢谢pznpt


@echo off
title 正在搜索程序
color 2E
mode con cols=35 lines=30
echo.
echo.
echo.
for %%a in ("abc.exe\/s" "def.exe" "office 2003.exe\-gm2 -ai -qn") do (
for /f "tokens=1* delims=\" %%b in ("%%~a") do call :lp "%%b" "%%c"
)
pause&goto :eof
:lp
cls&echo 正在搜索%~1
for %%i in (q p o n m l k j i h g z f e d c) do (
if exist "%%i:\" (
echo.&echo 正在搜索%%i盘 请稍候...
for /f "delims=" %%j in ('dir /a-d /b /s "%%i:\%~1"') do (
start /wait "" "%%j" %~2
goto :eof
)
)
)


[ 本帖最后由 2012秋风落叶 于 2012-7-6 14:42 编辑 ]
2#
发表于 2012-6-23 23:32:11 | 只看该作者
楼主说的是rar自解压安装程序吧?

如果是,改成start /wait "" "%%i" /s

应该就可以了
回复

使用道具 举报

3#
 楼主| 发表于 2012-6-24 00:43:28 | 只看该作者

回复 #2 pznpt 的帖子

太感谢你啦,果然OK,看到你回答好多问题,帮助了好多人,理应当个DOS版主呀!
对了,
如果可以的话,想用一个批处理搜索好几个程序来运行,
比如上面的rar.exe文件搜索到了之后运行了,继续搜索2012qq.exe,请问这样该怎么写呢?
回复

使用道具 举报

4#
发表于 2012-6-24 22:12:19 | 只看该作者

能不能不显示命令行

能不能不显示命令行
回复

使用道具 举报

5#
发表于 2012-6-24 22:13:58 | 只看该作者

回复 #3 2012秋风落叶 的帖子

  1. @echo off
  2. title 正在搜索程序
  3. color 2E
  4. mode con cols=35 lines=30
  5. echo.
  6. echo.
  7. echo.
  8. for %%a in ("abc.exe\/s" "def.exe" "office 2003.exe\-gm2 -ai -qn") do (
  9.   for /f "tokens=1* delims=" %%b in ("%%~a") do call :lp "%%b" "%%c"
  10. )
  11. pause&goto :eof
  12. :lp
  13. cls&echo 正在搜索%~1
  14. for %%i in (q p o n m l k j i h g z f e d c) do (
  15.   if exist "%%i:" (
  16.     echo.&echo 正在搜索%%i盘 请稍候...
  17.     for /f "delims=" %%j in ('dir /a-d /b /s "%%i:\%~1"') do (
  18.       start /wait "" "%%j" %~2
  19.       goto :eof
  20.     )
  21.   )
  22. )
复制代码

[ 本帖最后由 pznpt 于 2012-6-25 16:35 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2012-6-25 14:31:09 | 只看该作者

回复 #5 pznpt 的帖子

嗯 非常感谢您的付出,您的回答,但是假如我的静默参数不是/s呢,比如rar.exe是/s 我的office2003.exe参数是-gm2 -ai -qn
这样的话,岂不是有点冲突,请问还可以改改吗?
回复

使用道具 举报

7#
发表于 2012-6-25 16:39:18 | 只看该作者
猜到你的要求会是这样的,5楼再试试看吧
回复

使用道具 举报

8#
 楼主| 发表于 2012-6-25 17:07:45 | 只看该作者

回复 #7 pznpt 的帖子

谢谢您啦,我就知道你可以做到的,呵呵!太好了,帮了我大忙了!
推荐你申请版主,呵呵!
回复

使用道具 举报

9#
 楼主| 发表于 2012-8-18 15:18:53 | 只看该作者

回复 #5 pznpt 的帖子

坛友;又要请您帮忙了,在您写的这个批处理的基础上,添加一点,先判断C:\Windows\A.EXE,有则运行它,运行完毕退出批处理,没有A.EXE则执行那个搜索的批处理,请问这样怎么写?
回复

使用道具 举报

10#
发表于 2012-8-19 14:20:50 | 只看该作者

回复 #9 2012秋风落叶 的帖子

第一行和第二行之间插入:
if exist "C:\Windows\A.EXE" start "" "C:\Windows\A.EXE"&goto :eof
回复

使用道具 举报

11#
发表于 2012-8-21 12:51:46 | 只看该作者
原帖由 2012秋风落叶 于 2012-6-23 20:54 发表
我想用批处理搜索一个程序 rar.exe的程序,搜索到后并且是带参数 /s /q运行,
请问该怎么写
下面是我根据坛友帖子写的,怎么把/s /q两个参数加进去呢
大家知道rar程序加了/s /q之后就可以静默安装啦,我要的 ...

全盘搜索前 先找注册表
  1. if exist "%ProgramFiles%\winrar\rar.exe" (
  2. set RarPath=%ProgramFiles%\winrar
  3. ) else if exist "%ProgramFiles(x86)%\winrar\rar.exe" (
  4. set "RarPath=%ProgramFiles(x86)%\winrar"
  5. ) else (
  6. reg query HKLM\software\winrar /v exe64>nul 2>nul
  7. if errorlevel 1 (
  8. reg query HKLM\software\winrar /v exe32>nul 2>nul
  9. if errorlevel 1 (
  10. echo Winrar may not be install in your machine.
  11. ) else if errorlevel 0 (
  12. for /f "usebackq tokens=2,*" %%A in (`reg query HKLM\software\winrar /v exe32^|find /i "exe32"`) do set RarPath=%%B
  13. )
  14. ) else if errorlevel 0 (
  15. for /f "usebackq tokens=2,*" %%A in (`reg query HKLM\software\winrar /v exe64^|find /i "exe64"`) do set RarPath=%%B
  16. )
  17. )
复制代码
回复

使用道具 举报

12#
 楼主| 发表于 2012-8-21 22:33:42 | 只看该作者

回复 #10 pznpt 的帖子

如果我的这个A.exe有运行参数呢 比如 /wait  
那又该怎么写呢!
谢谢您耐心指导,我非常感激!
回复

使用道具 举报

13#
 楼主| 发表于 2012-8-21 22:34:23 | 只看该作者

回复 #11 Pale_Cheung 的帖子

谢谢大大了
回复

使用道具 举报

14#
发表于 2012-8-22 11:08:53 | 只看该作者

回复 #12 2012秋风落叶 的帖子

直接加A.EXE后面好了
if exist "C:\Windows\A.EXE" start /wait "" "C:\Windows\A.EXE" /wait&goto :eof
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-24 09:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表